@ -55,6 +55,9 @@ namespace Debugger
public ManagedCallback GetProcessCallbackInterface ( ICorDebugProcess pProcess )
public ManagedCallback GetProcessCallbackInterface ( ICorDebugProcess pProcess )
{
{
Process process = debugger . GetProcess ( pProcess ) ;
Process process = debugger . GetProcess ( pProcess ) ;
if ( process . HasExpired ) {
return null ;
}
try {
try {
int isRunning = process . CorProcess . IsRunning ;
int isRunning = process . CorProcess . IsRunning ;
} catch ( COMException e ) {
} catch ( COMException e ) {
@ -67,6 +70,12 @@ namespace Debugger
return process . CallbackInterface ;
return process . CallbackInterface ;
}
}
public void ExitProcess ( ICorDebugProcess pProcess )
{
ManagedCallback managedCallback = debugger . GetProcess ( pProcess ) . CallbackInterface ;
managedCallback . ExitProcess ( pProcess ) ;
}
#region Program folow control
#region Program folow control
public void StepComplete ( ICorDebugAppDomain pAppDomain , ICorDebugThread pThread , ICorDebugStepper pStepper , CorDebugStepReason reason )
public void StepComplete ( ICorDebugAppDomain pAppDomain , ICorDebugThread pThread , ICorDebugStepper pStepper , CorDebugStepReason reason )
@ -288,14 +297,6 @@ namespace Debugger
}
}
}
}
public void ExitProcess ( ICorDebugProcess pProcess )
{
ManagedCallback managedCallback = GetProcessCallbackInterface ( pProcess ) ;
if ( managedCallback ! = null ) {
managedCallback . ExitProcess ( pProcess ) ;
}
}
#endregion
#endregion
#region ICorDebugManagedCallback2 Members
#region ICorDebugManagedCallback2 Members