diff --git a/pykd/dbgcmd.h b/pykd/dbgcmd.h index 4de0f59..a245d21 100644 --- a/pykd/dbgcmd.h +++ b/pykd/dbgcmd.h @@ -23,10 +23,22 @@ setExecutionStatus() if ( FAILED( hres ) ) throw DbgException( "IDebugControl::SetExecutionStatus failed" ); - hres = dbgExt->control->WaitForEvent( 0, INFINITE ); + ULONG currentStatus; + + do { + + hres = dbgExt->control->WaitForEvent( 0, INFINITE ); - if ( FAILED( hres ) ) - throw DbgException( "IDebugControl::SetExecutionStatus failed" ); + if ( FAILED( hres ) ) + throw DbgException( "IDebugControl::SetExecutionStatus failed" ); + + hres = dbgExt->control->GetExecutionStatus( ¤tStatus ); + + if ( FAILED( hres ) ) + throw DbgException( "IDebugControl::GetExecutionStatus failed" ); + + + } while( currentStatus != DEBUG_STATUS_BREAK && currentStatus != DEBUG_STATUS_NO_DEBUGGEE ); } catch( std::exception &e )