[pykd] fixed : hotfix

git-svn-id: https://pykd.svn.codeplex.com/svn@63977 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
SND\kernelnet_cp 2011-04-14 15:09:17 +00:00
parent 016f7f0425
commit e6af39ec59
3 changed files with 25 additions and 2 deletions

View File

@ -11,6 +11,8 @@ public:
dbgClient() dbgClient()
{ {
m_callbacks = NULL;
IDebugClient4 *client = NULL; IDebugClient4 *client = NULL;
DebugCreate( __uuidof(IDebugClient4), (void **)&client ); DebugCreate( __uuidof(IDebugClient4), (void **)&client );

View File

@ -39,8 +39,11 @@ DbgEventCallbacksManager::DbgEventCallbacksManager( IDebugClient *client )
DbgEventCallbacksManager::~DbgEventCallbacksManager() DbgEventCallbacksManager::~DbgEventCallbacksManager()
{ {
if ( m_debugClient ) if ( m_debugClient )
{
m_debugClient->SetEventCallbacks( NULL );
m_debugClient->Release(); m_debugClient->Release();
} }
}
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////

View File

@ -473,25 +473,43 @@ DebugExtensionUninitialize()
DbgExt::DbgExt( IDebugClient4 *masterClient ) DbgExt::DbgExt( IDebugClient4 *masterClient )
{ {
client = NULL;
masterClient->QueryInterface( __uuidof(IDebugClient), (void **)&client ); masterClient->QueryInterface( __uuidof(IDebugClient), (void **)&client );
client4 = NULL;
masterClient->QueryInterface( __uuidof(IDebugClient4), (void **)&client4 ); masterClient->QueryInterface( __uuidof(IDebugClient4), (void **)&client4 );
control = NULL;
masterClient->QueryInterface( __uuidof(IDebugControl), (void **)&control ); masterClient->QueryInterface( __uuidof(IDebugControl), (void **)&control );
control4 = NULL;
masterClient->QueryInterface( __uuidof(IDebugControl4), (void **)&control4 ); masterClient->QueryInterface( __uuidof(IDebugControl4), (void **)&control4 );
registers = NULL;
masterClient->QueryInterface( __uuidof(IDebugRegisters), (void **)&registers ); masterClient->QueryInterface( __uuidof(IDebugRegisters), (void **)&registers );
symbols = NULL;
masterClient->QueryInterface( __uuidof(IDebugSymbols), (void ** )&symbols ); masterClient->QueryInterface( __uuidof(IDebugSymbols), (void ** )&symbols );
symbols2 = NULL;
masterClient->QueryInterface( __uuidof(IDebugSymbols2), (void ** )&symbols2 ); masterClient->QueryInterface( __uuidof(IDebugSymbols2), (void ** )&symbols2 );
symbols3 = NULL;
masterClient->QueryInterface( __uuidof(IDebugSymbols3), (void ** )&symbols3 ); masterClient->QueryInterface( __uuidof(IDebugSymbols3), (void ** )&symbols3 );
dataSpaces = NULL;
masterClient->QueryInterface( __uuidof(IDebugDataSpaces), (void **)&dataSpaces ); masterClient->QueryInterface( __uuidof(IDebugDataSpaces), (void **)&dataSpaces );
dataSpaces4 = NULL;
masterClient->QueryInterface( __uuidof(IDebugDataSpaces4), (void **)&dataSpaces4 ); masterClient->QueryInterface( __uuidof(IDebugDataSpaces4), (void **)&dataSpaces4 );
advanced2 = NULL;
masterClient->QueryInterface( __uuidof(IDebugAdvanced2), (void **)&advanced2 ); masterClient->QueryInterface( __uuidof(IDebugAdvanced2), (void **)&advanced2 );
system = NULL;
masterClient->QueryInterface( __uuidof(IDebugSystemObjects), (void**)&system ); masterClient->QueryInterface( __uuidof(IDebugSystemObjects), (void**)&system );
system2 = NULL;
masterClient->QueryInterface( __uuidof(IDebugSystemObjects2), (void**)&system2 ); masterClient->QueryInterface( __uuidof(IDebugSystemObjects2), (void**)&system2 );
m_previosExt = dbgExt; m_previosExt = dbgExt;