internal void DispatchEvent(CorBreakpointEventArgs ev) { // stops executing by default (further handlers may change this) ev.Continue = false; // calls external handlers OnBreakpoint?.Invoke(ev); }
void ICorDebugManagedCallback.Breakpoint(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugBreakpoint pBreakpoint) { var ev = new CorBreakpointEventArgs(new CorAppDomain(pAppDomain, p_options), new CorThread(pThread, p_options), new CorFunctionBreakpoint((ICorDebugFunctionBreakpoint)pBreakpoint, p_options)); GetOwner(ev.Controller).DispatchEvent(ev); FinishEvent(ev); }
static void process_OnBreakpoint(MinDbg.CorDebug.CorBreakpointEventArgs ev) { Console.WriteLine("Breakpoint hit."); var source = ev.Thread.GetCurrentSourcePosition(); DisplayCurrentSourceCode(source); ProcessCommand((ev.Controller is CorProcess) ? (CorProcess)ev.Controller : ((CorAppDomain)ev.Controller).GetProcess()); }