mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-20 19:53:22 +08:00
[0.2.x] added : fixed method size of module class
git-svn-id: https://pykd.svn.codeplex.com/svn@78864 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
b06fe5b226
commit
deedfd94e0
@ -34,6 +34,7 @@ ULONG64 findModuleBase( ULONG64 offset );
|
|||||||
ULONG64 findModuleBySymbol( const std::string &symbolName );
|
ULONG64 findModuleBySymbol( const std::string &symbolName );
|
||||||
std::string getModuleName( ULONG64 baseOffset );
|
std::string getModuleName( ULONG64 baseOffset );
|
||||||
std::string getModuleImageName( ULONG64 baseOffset );
|
std::string getModuleImageName( ULONG64 baseOffset );
|
||||||
|
ULONG getModuleSize( ULONG64 baseOffset );
|
||||||
std::string getModuleSymbolFileName( ULONG64 baseOffset );
|
std::string getModuleSymbolFileName( ULONG64 baseOffset );
|
||||||
ULONG getModuleTimeStamp( ULONG64 baseOffset );
|
ULONG getModuleTimeStamp( ULONG64 baseOffset );
|
||||||
ULONG getModuleCheckSum( ULONG64 baseOffset );
|
ULONG getModuleCheckSum( ULONG64 baseOffset );
|
||||||
|
@ -271,6 +271,22 @@ std::string getModuleImageName( ULONG64 baseOffset )
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
ULONG getModuleSize( ULONG64 baseOffset )
|
||||||
|
{
|
||||||
|
PyThread_StateRestore pyThreadRestore( g_dbgEng->pystate );
|
||||||
|
|
||||||
|
HRESULT hres;
|
||||||
|
DEBUG_MODULE_PARAMETERS moduleParam = { 0 };
|
||||||
|
|
||||||
|
hres = g_dbgEng->symbols->GetModuleParameters( 1, &baseOffset, 0, &moduleParam );
|
||||||
|
if ( FAILED( hres ) )
|
||||||
|
throw DbgException( "IDebugSymbol::GetModuleParameters failed" );
|
||||||
|
|
||||||
|
return moduleParam.Size;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
std::string getModuleSymbolFileName( ULONG64 baseOffset )
|
std::string getModuleSymbolFileName( ULONG64 baseOffset )
|
||||||
{
|
{
|
||||||
PyThread_StateRestore pyThreadRestore( g_dbgEng->pystate );
|
PyThread_StateRestore pyThreadRestore( g_dbgEng->pystate );
|
||||||
|
@ -17,6 +17,7 @@ class ModuleTest( unittest.TestCase ):
|
|||||||
|
|
||||||
def testSize( self ):
|
def testSize( self ):
|
||||||
self.assertNotEqual( 0, target.module.size() )
|
self.assertNotEqual( 0, target.module.size() )
|
||||||
|
self.assertTrue( pykd.isValid( target.module.begin() + target.module.size() - 1) )
|
||||||
|
|
||||||
def testBegin( self ):
|
def testBegin( self ):
|
||||||
self.assertNotEqual( 0, target.module.begin() )
|
self.assertNotEqual( 0, target.module.begin() )
|
||||||
@ -25,6 +26,7 @@ class ModuleTest( unittest.TestCase ):
|
|||||||
|
|
||||||
def testEnd( self ):
|
def testEnd( self ):
|
||||||
self.assertEqual( target.module.size(), target.module.end() - target.module.begin() )
|
self.assertEqual( target.module.size(), target.module.end() - target.module.begin() )
|
||||||
|
self.assertTrue( pykd.isValid( target.module.end() - 1) )
|
||||||
|
|
||||||
def testPdb( self ):
|
def testPdb( self ):
|
||||||
self.assertNotEqual( "", target.module.symfile() )
|
self.assertNotEqual( "", target.module.symfile() )
|
||||||
@ -33,7 +35,7 @@ class ModuleTest( unittest.TestCase ):
|
|||||||
self.assertEqual( target.module.name() + ".exe", target.module.image() )
|
self.assertEqual( target.module.name() + ".exe", target.module.image() )
|
||||||
|
|
||||||
def testFindModule( self ):
|
def testFindModule( self ):
|
||||||
self.assertRaises( pykd.BaseException, pykd.module, target.module.begin() - 0x10 )
|
self.assertRaises( pykd.BaseException, pykd.module, target.module.begin() - 0x10 )
|
||||||
|
|
||||||
self.assertNotEqual( None, pykd.module( target.module.begin() ) )
|
self.assertNotEqual( None, pykd.module( target.module.begin() ) )
|
||||||
self.assertNotEqual( None, pykd.module( target.module.begin() + 0x10) )
|
self.assertNotEqual( None, pykd.module( target.module.begin() + 0x10) )
|
||||||
|
Loading…
Reference in New Issue
Block a user