diff --git a/pykd/dbgmem.cpp b/pykd/dbgmem.cpp index 4b41885..b06bc69 100644 --- a/pykd/dbgmem.cpp +++ b/pykd/dbgmem.cpp @@ -20,14 +20,14 @@ loadMemory( ULONG64 address, PVOID dest, ULONG length, BOOLEAN phyAddr ) { HRESULT hres = dbgExt->dataSpaces->ReadVirtual( address, dest, length, NULL ); if ( FAILED( hres ) ) - throw DbgException( "IDebugDataSpace::ReadVirtual failed" ); + return false; } else { HRESULT hres = dbgExt->dataSpaces->ReadPhysical( address, dest, length, NULL ); if ( FAILED( hres ) ) - throw DbgException( "IDebugDataSpace::ReadPhysical failed" ); + return false; } return true; diff --git a/pykd/dbgtype.cpp b/pykd/dbgtype.cpp index 586b7fa..c90f5fb 100644 --- a/pykd/dbgtype.cpp +++ b/pykd/dbgtype.cpp @@ -122,8 +122,9 @@ loadTypedVar( const std::string &moduleName, const std::string &typeName, ULONG6 hres = dbgExt->symbols->GetTypeName( moduleBase, fieldTypeId, fieldTypeName, sizeof(fieldTypeName), NULL ); std::string fieldTypeNameStr( fieldTypeName ); - if ( fieldTypeNameStr == "__unnamed" || fieldTypeNameStr == "" ) - continue; + if ( fieldTypeNameStr == "__unnamed" + || fieldTypeNameStr.find("") < fieldTypeNameStr.size() ) + continue; ULONG fieldSize; hres = dbgExt->symbols->GetTypeSize( moduleBase, fieldTypeId, &fieldSize ); @@ -339,7 +340,7 @@ valueLoader( ULONG64 address, ULONG size ) { if ( size == sizeof(valType) ) { - valType v; + valType v = 0; if ( loadMemory( address, &v, sizeof(v) ) ) return boost::python::long_( (unsigned __int64)v ); } @@ -349,7 +350,7 @@ valueLoader( ULONG64 address, ULONG size ) for ( unsigned int i = 0; i < size / sizeof(valType); ++i ) { - valType v; + valType v = 0; if ( !loadMemory( address + i * sizeof(valType), &v, sizeof(v) ) ) return boost::python::object(); @@ -362,12 +363,6 @@ valueLoader( ULONG64 address, ULONG size ) return boost::python::object(); } + /////////////////////////////////////////////////////////////////////////////////// -boost::python::object -loadComplexType( const std::string &typeName, ULONG64 address, ULONG size ) -{ - return boost::python::object(); -} - -/////////////////////////////////////////////////////////////////////////////////// \ No newline at end of file