mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-20 03:23:23 +08:00
[0.2.x] added : detachAllProcesses ( detach from all process and resume all their threads )
[0.2.x] added : killAllProcesses ( detach from all process then terminate them ) git-svn-id: https://pykd.svn.codeplex.com/svn@86269 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
976e43a31a
commit
6f7c574b6b
@ -12,6 +12,8 @@ void attachKernel( const std::string &connectOptions = "" );
|
||||
bool isLocalKernelDebuggerEnabled();
|
||||
void detachProcess( ULONG processId = -1);
|
||||
void terminateProcess( ULONG processId = -1);
|
||||
void detachAllProcesses();
|
||||
void terminateAllProcesses();
|
||||
|
||||
void loadDump( const std::wstring &fileName );
|
||||
void writeDump( const std::wstring &fileNamem, bool smallDump );
|
||||
|
@ -102,8 +102,12 @@ BOOST_PYTHON_MODULE( pykd )
|
||||
"Check whether kernel debugging is enabled for the local kernel" );
|
||||
python::def( "detachProcess", &detachProcess, detachProcess_( boost::python::args( "pid" ),
|
||||
"Stop process debugging") );
|
||||
python::def( "detachAllProcesses", &detachAllProcesses,
|
||||
"Detach from all process and resume all their threads" );
|
||||
python::def( "killProcess", &terminateProcess,
|
||||
"Stop debugging and terminate current process" );
|
||||
python::def( "killAllProcesses", &terminateAllProcesses,
|
||||
"Detach from all process then terminate them");
|
||||
python::def( "loadDump", &loadDump,
|
||||
"Load crash dump");
|
||||
python::def( "isDumpAnalyzing", &isDumpAnalyzing,
|
||||
|
@ -166,7 +166,39 @@ void terminateProcess( ULONG processId )
|
||||
|
||||
hres = g_dbgEng->client->DetachCurrentProcess();
|
||||
if ( FAILED( hres ) )
|
||||
throw DbgException( "IDebugClient::DetachCurrentProcess failed" );
|
||||
throw DbgException( "IDebugClient::DetachCurrentProcess", hres );
|
||||
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void detachAllProcesses()
|
||||
{
|
||||
PyThread_StateRestore pyThreadRestore( g_dbgEng->pystate );
|
||||
|
||||
HRESULT hres;
|
||||
|
||||
hres = g_dbgEng->client->DetachProcesses();
|
||||
|
||||
if ( FAILED(hres) )
|
||||
throw DbgException( "IDebugClient::DetachProcesses", hres );
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void terminateAllProcesses()
|
||||
{
|
||||
PyThread_StateRestore pyThreadRestore( g_dbgEng->pystate );
|
||||
|
||||
HRESULT hres;
|
||||
|
||||
hres = g_dbgEng->client->TerminateProcesses();
|
||||
if ( FAILED(hres) )
|
||||
throw DbgException( "IDebugClient::TerminateProcesses", hres );
|
||||
|
||||
hres = g_dbgEng->client->DetachProcesses();
|
||||
if ( FAILED(hres) )
|
||||
throw DbgException( "IDebugClient::DetachProcesses", hres );
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user