public void Exception2(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugFrame pFrame, uint nOffset, CorDebugExceptionCallbackType exceptionType, uint dwFlags) { EnterCallback(PausedReason.Exception, "Exception2 (type=" + exceptionType.ToString() + ")", pThread); // This callback is also called from Exception(...)!!!! (the .NET 1.1 version) // Whatch out for the zeros and null! // Exception -> Exception2(pAppDomain, pThread, null, 0, exceptionType, 0); process.SelectedThread.CurrentExceptionType = (ExceptionType)exceptionType; if (ExceptionType.DEBUG_EXCEPTION_UNHANDLED != (ExceptionType)exceptionType) { // Handled exception if (process.PauseOnHandledException) { ExitCallback_Paused(); } else { ExitCallback_Continue(); } } else { // Unhandled exception ExitCallback_Paused(); } }
public void UnloadModule(ICorDebugAppDomain pAppDomain, ICorDebugModule pModule) { EnterCallback(PausedReason.Other, "UnloadModule", pAppDomain); process.RemoveModule(pModule); ExitCallback_Continue(); }
public unsafe void LoadModule(ICorDebugAppDomain pAppDomain, ICorDebugModule pModule) { EnterCallback(PausedReason.Other, "LoadModule", pAppDomain); process.AddModule(pModule); ExitCallback_Continue(); }
public void LogMessage(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, int lLevel, string pLogSwitchName, string pMessage) { EnterCallback(PausedReason.Other, "LogMessage", pThread); process.OnLogMessage(new MessageEventArgs(process, lLevel, pMessage, pLogSwitchName)); ExitCallback_Continue(); }
public void CreateAppDomain(ICorDebugProcess pProcess, ICorDebugAppDomain pAppDomain) { EnterCallback(PausedReason.Other, "CreateAppDomain", pAppDomain); pAppDomain.Attach(); ExitCallback_Continue(); }
public void FunctionRemapOpportunity(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugFunction pOldFunction, ICorDebugFunction pNewFunction, uint oldILOffset) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.FunctionRemapOpportunity(pAppDomain, pThread, pOldFunction, pNewFunction, oldILOffset); } }
public void FunctionRemapComplete(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugFunction pFunction) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.FunctionRemapComplete(pAppDomain, pThread, pFunction); } }
public void ExceptionUnwind(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, CorDebugExceptionUnwindCallbackType dwEventType, uint dwFlags) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.ExceptionUnwind(pAppDomain, pThread, dwEventType, dwFlags); } }
public void BreakpointSetError(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugBreakpoint pBreakpoint, uint dwError) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.BreakpointSetError(pAppDomain, pThread, pBreakpoint, dwError); } }
public void ExitAppDomain(ICorDebugProcess pProcess, ICorDebugAppDomain pAppDomain) { ManagedCallback managedCallback = GetProcessCallbackInterface(pProcess); if (managedCallback != null) { managedCallback.ExitAppDomain(pProcess, pAppDomain); } }
public void ExitThread(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.ExitThread(pAppDomain, pThread); } }
public void LogSwitch(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, int lLevel, uint ulReason, string pLogSwitchName, string pParentName) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.LogSwitch(pAppDomain, pThread, lLevel, ulReason, pLogSwitchName, pParentName); } }
public void UpdateModuleSymbols(ICorDebugAppDomain pAppDomain, ICorDebugModule pModule, IStream pSymbolStream) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.UpdateModuleSymbols(pAppDomain, pModule, pSymbolStream); } }
public unsafe void Break(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.Break(pAppDomain, pThread); } }
public void EvalComplete(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugEval corEval) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.EvalComplete(pAppDomain, pThread, corEval); } }
public void EditAndContinueRemap(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugFunction pFunction, int fAccurate) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.EditAndContinueRemap(pAppDomain, pThread, pFunction, fAccurate); } }
public void LogMessage(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, int lLevel, string pLogSwitchName, string pMessage) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.LogMessage(pAppDomain, pThread, lLevel, pLogSwitchName, pMessage); } }
public void StepComplete(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugStepper pStepper, CorDebugStepReason reason) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.StepComplete(pAppDomain, pThread, pStepper, reason); } }
public void UnloadAssembly(ICorDebugAppDomain pAppDomain, ICorDebugAssembly pAssembly) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.UnloadAssembly(pAppDomain, pAssembly); } }
public void UnloadClass(ICorDebugAppDomain pAppDomain, ICorDebugClass c) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.UnloadClass(pAppDomain, c); } }
public unsafe void Exception(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, int unhandled) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.Exception(pAppDomain, pThread, unhandled); } }
public void UnloadModule(ICorDebugAppDomain pAppDomain, ICorDebugModule pModule) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.UnloadModule(pAppDomain, pModule); } }
public void Exception2(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugFrame pFrame, uint nOffset, CorDebugExceptionCallbackType exceptionType, uint dwFlags) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.Exception2(pAppDomain, pThread, pFrame, nOffset, exceptionType, dwFlags); } }
// Do not pass the pBreakpoint parameter as ICorDebugBreakpoint - marshaling of it fails in .NET 1.1 public void Breakpoint(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, IntPtr pBreakpoint) { ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain); if (managedCallback != null) { managedCallback.Breakpoint(pAppDomain, pThread, pBreakpoint); } }
public void CreateThread(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread) { // We can not use pThread since it has not been added yet // and we continue from this callback anyway EnterCallback(PausedReason.Other, "CreateThread " + pThread.ID, pAppDomain); process.AddThread(pThread); ExitCallback_Continue(); }
// public void Exception2(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugFrame pFrame, uint nOffset, CorDebugExceptionCallbackType exceptionType, uint dwFlags) // { // EnterCallback(PausedReason.Exception, "Exception2 (type=" + exceptionType.ToString() + ")", pThread); // // // This callback is also called from Exception(...)!!!! (the .NET 1.1 version) // // Watch out for the zeros and null! // // Exception -> Exception2(pAppDomain, pThread, null, 0, exceptionType, 0); // // process.SelectedThread.CurrentException = new Exception(new Value(process, new Expressions.CurrentExceptionExpression(), process.SelectedThread.CorThread.CurrentException)); // process.SelectedThread.CurrentException_DebuggeeState = process.DebuggeeState; // process.SelectedThread.CurrentExceptionType = (ExceptionType)exceptionType; // process.SelectedThread.CurrentExceptionIsUnhandled = (ExceptionType)exceptionType == ExceptionType.Unhandled; // // if (process.SelectedThread.CurrentExceptionIsUnhandled || // process.PauseOnHandledException) // { // pauseOnNextExit = true; // } // ExitCallback(); // } public void ExceptionUnwind(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, CorDebugExceptionUnwindCallbackType dwEventType, uint dwFlags) { EnterCallback(PausedReason.ExceptionIntercepted, "ExceptionUnwind", pThread); if (dwEventType == CorDebugExceptionUnwindCallbackType.DEBUG_EXCEPTION_INTERCEPTED) { ExitCallback_Paused(); } else { ExitCallback_Continue(); } }
// Do not pass the pBreakpoint parameter as ICorDebugBreakpoint - marshaling of it fails in .NET 1.1 public void Breakpoint(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, IntPtr pBreakpoint) { EnterCallback(PausedReason.Breakpoint, "Breakpoint", pThread); this.process.NotifyPaused(new PauseSession(PausedReason.Breakpoint)); ExitCallback_Paused(); // foreach (Breakpoint b in debugger.Breakpoints) { // if (b.Equals(pBreakpoint)) { // // TODO: Check that this works // b.OnHit(); // } // } }
public void ExitThread(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread) { // It seems that ICorDebugThread is still not dead and can be used EnterCallback(PausedReason.Other, "ExitThread " + pThread.ID, pThread); process.GetThread(pThread).NotifyNativeThreadExited(); try { ExitCallback_Continue(); } catch (COMException e) { // For some reason this sometimes happens in .NET 1.1 process.TraceMessage("Continue failed in ExitThread callback: " + e.Message); } }
public void NameChange(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread) { ManagedCallback managedCallback = null; if (pAppDomain != null) { managedCallback = GetProcessCallbackInterface(pAppDomain); } if (pThread != null) { managedCallback = GetProcessCallbackInterface(pThread.Process); } if (managedCallback != null) { managedCallback.NameChange(pAppDomain, pThread); } }
void HandleEvalComplete(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugEval corEval, bool exception) { // Let the eval know that the CorEval has finished Eval eval = process.GetEval(corEval); eval.NotifyEvaluationComplete(!exception); process.NotifyEvaluationComplete(eval); if (process.SetupNextEvaluation()) { ExitCallback_Continue(); } else { ExitCallback_Paused(); } }