mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-20 03:23:23 +08:00
[+] added debug events defs
[~] addr64 conversion for module randge and get tread/process context git-svn-id: https://pykd.svn.codeplex.com/svn@62774 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
7f2284ca99
commit
8e0ecc1733
@ -246,6 +246,21 @@ BOOST_PYTHON_MODULE( pykd )
|
||||
// exception flags
|
||||
_DEF_PY_CONST(EXCEPTION_NONCONTINUABLE);
|
||||
|
||||
// debug events
|
||||
_DEF_PY_CONST(DEBUG_EVENT_BREAKPOINT);
|
||||
_DEF_PY_CONST(DEBUG_EVENT_EXCEPTION);
|
||||
_DEF_PY_CONST(DEBUG_EVENT_CREATE_THREAD);
|
||||
_DEF_PY_CONST(DEBUG_EVENT_EXIT_THREAD);
|
||||
_DEF_PY_CONST(DEBUG_EVENT_CREATE_PROCESS);
|
||||
_DEF_PY_CONST(DEBUG_EVENT_EXIT_PROCESS);
|
||||
_DEF_PY_CONST(DEBUG_EVENT_LOAD_MODULE);
|
||||
_DEF_PY_CONST(DEBUG_EVENT_UNLOAD_MODULE);
|
||||
_DEF_PY_CONST(DEBUG_EVENT_SYSTEM_ERROR);
|
||||
_DEF_PY_CONST(DEBUG_EVENT_SESSION_STATUS);
|
||||
_DEF_PY_CONST(DEBUG_EVENT_CHANGE_DEBUGGEE_STATE);
|
||||
_DEF_PY_CONST(DEBUG_EVENT_CHANGE_ENGINE_STATE);
|
||||
_DEF_PY_CONST(DEBUG_EVENT_CHANGE_SYMBOL_STATE);
|
||||
|
||||
}
|
||||
|
||||
#undef _DEF_PY_CONST
|
||||
|
@ -108,8 +108,8 @@ findModule( ULONG64 addr )
|
||||
|
||||
dbgModuleClass::dbgModuleClass( const std::string &name, ULONG64 base, ULONG size ) :
|
||||
m_name( name ),
|
||||
m_base( base ),
|
||||
m_end( base + size )
|
||||
m_base( addr64(base) ),
|
||||
m_end( addr64(base) + size )
|
||||
{
|
||||
reloadSymbols();
|
||||
|
||||
@ -130,7 +130,7 @@ dbgModuleClass::dbgModuleClass( const std::string &name, ULONG64 base, ULONG siz
|
||||
sizeof( nameBuf ),
|
||||
NULL,
|
||||
&offset );
|
||||
|
||||
|
||||
if ( FAILED( hres ) )
|
||||
break;
|
||||
|
||||
|
@ -65,7 +65,7 @@ public:
|
||||
{}
|
||||
|
||||
dbgModuleClass( const std::string &name, ULONG64 base, ULONG size );
|
||||
|
||||
|
||||
ULONG64
|
||||
getBegin() const {
|
||||
return m_base;
|
||||
|
@ -72,25 +72,26 @@ setImplicitThread(
|
||||
HRESULT hres;
|
||||
|
||||
try {
|
||||
|
||||
|
||||
newThreadAddr = addr64(newThreadAddr);
|
||||
hres = dbgExt->system2->SetImplicitThreadDataOffset( newThreadAddr );
|
||||
if ( FAILED( hres ) )
|
||||
throw DbgException( "IDebugSystemObjects2::SetImplicitThreadDataOffset failed" );
|
||||
|
||||
return true;
|
||||
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
catch( std::exception &e )
|
||||
{
|
||||
dbgExt->control->Output( DEBUG_OUTPUT_ERROR, "pykd error: %s\n", e.what() );
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
dbgExt->control->Output( DEBUG_OUTPUT_ERROR, "pykd unexpected error\n" );
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
catch( std::exception &e )
|
||||
{
|
||||
dbgExt->control->Output( DEBUG_OUTPUT_ERROR, "pykd error: %s\n", e.what() );
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
dbgExt->control->Output( DEBUG_OUTPUT_ERROR, "pykd unexpected error\n" );
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
@ -292,22 +293,23 @@ VOID
|
||||
setCurrentProcess(
|
||||
ULONG64 processAddr )
|
||||
{
|
||||
HRESULT hres;
|
||||
HRESULT hres;
|
||||
|
||||
try {
|
||||
|
||||
processAddr = addr64(processAddr);
|
||||
hres = dbgExt->system2->SetImplicitProcessDataOffset( processAddr );
|
||||
if ( FAILED( hres ) )
|
||||
throw DbgException( "IDebugSystemObjects2::SetImplicitProcessDataOffset failed" );
|
||||
}
|
||||
catch( std::exception &e )
|
||||
{
|
||||
dbgExt->control->Output( DEBUG_OUTPUT_ERROR, "pykd error: %s\n", e.what() );
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
dbgExt->control->Output( DEBUG_OUTPUT_ERROR, "pykd unexpected error\n" );
|
||||
}
|
||||
catch( std::exception &e )
|
||||
{
|
||||
dbgExt->control->Output( DEBUG_OUTPUT_ERROR, "pykd error: %s\n", e.what() );
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
dbgExt->control->Output( DEBUG_OUTPUT_ERROR, "pykd unexpected error\n" );
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
Loading…
Reference in New Issue
Block a user