diff --git a/pykd/dbgext.cpp b/pykd/dbgext.cpp index 72c0da2..502189f 100644 --- a/pykd/dbgext.cpp +++ b/pykd/dbgext.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include "dbgext.h" #include "dbgprint.h" @@ -58,6 +59,17 @@ WindbgGlobalSession *windbgGlobalSession = NULL; ///////////////////////////////////////////////////////////////////////////////// +BOOST_PYTHON_FUNCTION_OVERLOADS( loadBytes, loadArray, 2, 3 ) +BOOST_PYTHON_FUNCTION_OVERLOADS( loadWords, loadArray, 2, 3 ) +BOOST_PYTHON_FUNCTION_OVERLOADS( loadDWords, loadArray, 2, 3 ) +BOOST_PYTHON_FUNCTION_OVERLOADS( loadQWords, loadArray , 2, 3 ) +BOOST_PYTHON_FUNCTION_OVERLOADS( loadSignBytes, loadArray , 2, 3 ) +BOOST_PYTHON_FUNCTION_OVERLOADS( loadSignWords, loadArray , 2, 3 ) +BOOST_PYTHON_FUNCTION_OVERLOADS( loadSignDWords, loadArray , 2, 3 ) +BOOST_PYTHON_FUNCTION_OVERLOADS( loadSignQWords, loadArray<__int64>, 2, 3 ) + +BOOST_PYTHON_FUNCTION_OVERLOADS( compareMemoryOver, compareMemory, 3, 4 ) + BOOST_PYTHON_MODULE( pykd ) { boost::python::def( "createSession", &dbgCreateSession ); @@ -79,14 +91,14 @@ BOOST_PYTHON_MODULE( pykd ) boost::python::def( "getOffset", &findAddressForSymbol ); boost::python::def( "findModule", &findModule ); boost::python::def( "addr64", &addr64 ); - boost::python::def( "loadBytes", &loadArray ); - boost::python::def( "loadWords", &loadArray ); - boost::python::def( "loadDWords", &loadArray ); - boost::python::def( "loadQWords", &loadArray ); - boost::python::def( "loadSignBytes", &loadArray ); - boost::python::def( "loadSignWords", &loadArray ); - boost::python::def( "loadSignDWords", &loadArray ); - boost::python::def( "loadSignQWords", &loadArray<__int64> ); + boost::python::def( "loadBytes", loadArray, loadBytes( boost::python::args( "address", "number", "phyAddr" ), "" ) ); + boost::python::def( "loadWords", &loadArray, loadWords( boost::python::args( "address", "number", "phyAddr" ), "" ) ); + boost::python::def( "loadDWords", &loadArray, loadDWords( boost::python::args( "address", "number", "phyAddr" ), "" ) ); + boost::python::def( "loadQWords", &loadArray, loadQWords( boost::python::args( "address", "number", "phyAddr" ), "" ) ); + boost::python::def( "loadSignBytes", &loadArray, loadSignBytes( boost::python::args( "address", "number", "phyAddr" ), "" ) ); + boost::python::def( "loadSignWords", &loadArray, loadSignWords( boost::python::args( "address", "number", "phyAddr" ), "" ) ); + boost::python::def( "loadSignDWords", &loadArray, loadSignDWords( boost::python::args( "address", "number", "phyAddr" ), "" ) ); + boost::python::def( "loadSignQWords", &loadArray<__int64>, loadSignQWords( boost::python::args( "address", "number", "phyAddr" ), "" ) ); boost::python::def( "loadPtrs", &loadPtrArray ); boost::python::def( "loadUnicodeString", &loadUnicodeStr ); boost::python::def( "loadAnsiString", &loadAnsiStr ); @@ -100,7 +112,7 @@ BOOST_PYTHON_MODULE( pykd ) boost::python::def( "ptrQWord", &loadByPtr ); boost::python::def( "ptrSignQWord", &loadByPtr<__int64> ); boost::python::def( "ptrPtr", &loadPtrByPtr ); - boost::python::def( "compareMemory", &compareMemory ); + boost::python::def( "compareMemory", &compareMemory, compareMemoryOver( boost::python::args( "addr1", "addr2", "length", "phyAddr" ), "" ) ); boost::python::def( "getCurrentStack", &getCurrentStack ); boost::python::def( "reloadSymbols", &reloadSymbols ); boost::python::def( "getPdbFile", &getPdbFile );