diff --git a/pykd/dbgext.cpp b/pykd/dbgext.cpp index 548d44a..0f257c1 100644 --- a/pykd/dbgext.cpp +++ b/pykd/dbgext.cpp @@ -43,6 +43,7 @@ BOOST_PYTHON_FUNCTION_OVERLOADS( dprint, DbgPrint::dprint, 1, 2 ) BOOST_PYTHON_FUNCTION_OVERLOADS( dprintln, DbgPrint::dprintln, 1, 2 ) BOOST_PYTHON_FUNCTION_OVERLOADS( loadCharsOv, loadChars, 2, 3 ) +BOOST_PYTHON_FUNCTION_OVERLOADS( loadWCharsOv, loadWChars, 2, 3 ) BOOST_PYTHON_FUNCTION_OVERLOADS( loadBytes, loadArray, 2, 3 ) BOOST_PYTHON_FUNCTION_OVERLOADS( loadWords, loadArray, 2, 3 ) BOOST_PYTHON_FUNCTION_OVERLOADS( loadDWords, loadArray, 2, 3 ) @@ -118,6 +119,8 @@ BOOST_PYTHON_MODULE( pykd ) "Extend address to 64 bits formats ( for x86 )" ); boost::python::def( "loadChars", loadChars, loadCharsOv( boost::python::args( "address", "number", "phyAddr" ), "Load string from the target buffer" ) ); + boost::python::def( "loadWChars", loadWChars, loadWCharsOv( boost::python::args( "address", "number", "phyAddr" ), + "Load unicode string from the target buffer" ) ); boost::python::def( "loadBytes", &loadArray, loadBytes( boost::python::args( "address", "number", "phyAddr" ), "Return list of unsigned bytes" ) ); boost::python::def( "loadWords", &loadArray, loadWords( boost::python::args( "address", "number", "phyAddr" ), diff --git a/pykd/dbgmem.cpp b/pykd/dbgmem.cpp index d93f838..189267f 100644 --- a/pykd/dbgmem.cpp +++ b/pykd/dbgmem.cpp @@ -198,6 +198,21 @@ loadChars( ULONG64 address, ULONG number, BOOLEAN phyAddr ) /////////////////////////////////////////////////////////////////////////////////// +boost::python::object +loadWChars( ULONG64 address, ULONG number, BOOLEAN phyAddr ) +{ + std::vector buffer(number); + + if ( loadMemory( address, &buffer[0], (ULONG)buffer.size(), phyAddr ) ) + { + return boost::python::object(std::wstring( buffer.begin(), buffer.end() ) ); + } + + return boost::python::object(); +} + +/////////////////////////////////////////////////////////////////////////////////// + ULONG64 loadPtrByPtr( ULONG64 address ) { diff --git a/pykd/dbgmem.h b/pykd/dbgmem.h index b82547c..4a3e2a2 100644 --- a/pykd/dbgmem.h +++ b/pykd/dbgmem.h @@ -39,6 +39,9 @@ loadArray( ULONG64 address, ULONG number, BOOLEAN phyAddr = FALSE ) boost::python::object loadChars( ULONG64 address, ULONG number, BOOLEAN phyAddr = FALSE ); +boost::python::object +loadWChars( ULONG64 address, ULONG number, BOOLEAN phyAddr = FALSE ); + template boost::python::object loadByPtr( ULONG64 address )