public LogSwitchEventContext(Debugger debugger, DBG.LogSwitchDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { this.args = e; }
public NameChangeEventContext(Debugger debugger, DBG.NameChangeDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { this.args = e; }
void Keep(DBG.CorValue v) { debugger.Dispatcher.VerifyAccess(); if (v == null) return; if (valuesToKeep == null) valuesToKeep = new List<DBG.CorValue>(); valuesToKeep.Add(v); }
public Eval(Debugger debugger, IAppDomain appDomain, DBG.DnEval eval) { if (appDomain == null) throw new InvalidOperationException("The thread has no owner AppDomain and can't be used to evaluate funcs"); this.debugger = debugger; this.appDomain = appDomain; this.eval = eval; this.eval.SetNoTotalTimeout(); }
public static DebuggerProcessState Convert(DBG.DebuggerProcessState state) { switch (state) { case DBG.DebuggerProcessState.Starting: return DebuggerProcessState.Starting; case DBG.DebuggerProcessState.Continuing: return DebuggerProcessState.Continuing; case DBG.DebuggerProcessState.Running: return DebuggerProcessState.Running; case DBG.DebuggerProcessState.Paused: return DebuggerProcessState.Paused; case DBG.DebuggerProcessState.Terminated: return DebuggerProcessState.Terminated; default: Debug.Fail("Invalid state"); return (DebuggerProcessState)(-1); } }
public static DBG.DebugProcessOptions Convert(DebugOptions options, IDebuggerSettings settings, DBG.CLRTypeDebugInfo info) { if (options == null) throw new ArgumentNullException(); var o = new DBG.DebugProcessOptions(info); o.Filename = options.Filename; o.CommandLine = options.CommandLine; o.CurrentDirectory = options.CurrentDirectory; o.DebugMessageDispatcher = WpfDebugMessageDispatcher.Instance; o.BreakProcessKind = Convert(options.BreakProcessKind); o.DebugOptions.IgnoreBreakInstructions = settings.IgnoreBreakInstructions; return o; }
public MDANotificationEventContext(Debugger debugger, DBG.MDANotificationDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { this.args = e; this.mda = e.CorMDA; }
public CustomNotificationEventContext(Debugger debugger, DBG.CustomNotificationDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { this.args = e; }
void TheDebugger_OnProcessStateChanged_Last(object sender, DBG.DebuggerEventArgs e) { switch (theDebugger.ProcessState) { case DBG.DebuggerProcessState.Starting: foreach (var bp in breakpointsToInitialize) Initialize(bp); breakpointsToInitialize.Clear(); InitializeProcessHandle(); Debug.Assert(hProcess_debuggee != IntPtr.Zero); break; case DBG.DebuggerProcessState.Terminated: Debug.Assert(breakpointsToInitialize.Count == 0); breakpointsToInitialize.Clear(); hProcess_debuggee = IntPtr.Zero; break; } Debug.Assert((theDebugger.ProcessState == DBG.DebuggerProcessState.Terminated && hProcess_debuggee == IntPtr.Zero) || (theDebugger.ProcessState != DBG.DebuggerProcessState.Terminated && hProcess_debuggee != IntPtr.Zero && hProcess_debuggee == GetProcessHandle())); var c = OnProcessStateChanged; if (c != null) { try { c(this, DebuggerEventArgs.Empty); } catch { // Ignore buggy script exceptions } } InitializePausedOrTerminatedEvent(); }
public UpdateModuleSymbolsEventContext(Debugger debugger, DBG.UpdateModuleSymbolsDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { this.args = e; }
internal IDebuggerAssembly FindAssemblyUI(DBG.CorAssembly corAssembly) { dispatcher.VerifyAccess(); var dbg = theDebugger.Debugger; if (dbg == null) return null; foreach (var a in dbg.Assemblies) { if (a.CorAssembly == corAssembly) return new DebuggerAssembly(this, a); } return null; }
public ControlCTrapEventContext(Debugger debugger, DBG.ControlCTrapDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { }
public AppDomainEventContext(Debugger debugger, DBG.AppDomainDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { this.args = e; }
public AssemblyEventContext(Debugger debugger, DBG.AssemblyDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { this.args = e; }
public ModuleEventContext(Debugger debugger, DBG.ModuleDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { this.args = e; }
IDebuggerValue Create(DBG.CorValue v) { if (v == null) throw new InvalidOperationException("Could not create a new value"); return new DebuggerValue(debugger, v); }
public ProcessEventContext(Debugger debugger, DBG.ProcessDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { }
internal IDebuggerModule FindModuleUI(DBG.CorModule corModule) { dispatcher.VerifyAccess(); var dbg = theDebugger.Debugger; if (dbg == null) return null; foreach (var m in dbg.Modules) { if (m.CorModule == corModule) return new DebuggerModule(this, m); } return null; }
public static DebuggerPauseState Convert(DBG.DebuggerPauseState ps) { switch (ps.Reason) { case DBG.DebuggerPauseReason.Other: return new DebuggerPauseState(PauseReason.Other); case DBG.DebuggerPauseReason.UnhandledException: return new DebuggerPauseState(PauseReason.UnhandledException); case DBG.DebuggerPauseReason.Exception: return new DebuggerPauseState(PauseReason.Exception); case DBG.DebuggerPauseReason.DebugEventBreakpoint: var deb = (DBG.DebugEventBreakpointPauseState)ps; return new EventBreakpointPauseState(deb.Breakpoint.Tag as IEventBreakpoint ?? NullEventBreakpoint.Instance); case DBG.DebuggerPauseReason.AnyDebugEventBreakpoint: var adeb = (DBG.AnyDebugEventBreakpointPauseState)ps; return new AnyEventBreakpointPauseState(adeb.Breakpoint.Tag as IAnyEventBreakpoint ?? NullAnyEventBreakpoint.Instance); case DBG.DebuggerPauseReason.Break: return new DebuggerPauseState(PauseReason.Break); case DBG.DebuggerPauseReason.ILCodeBreakpoint: var ilbp = (DBG.ILCodeBreakpointPauseState)ps; return new ILBreakpointPauseState(ilbp.Breakpoint.Tag as IILBreakpoint ?? NullILBreakpoint.Instance); case DBG.DebuggerPauseReason.NativeCodeBreakpoint: var nbp = (DBG.NativeCodeBreakpointPauseState)ps; return new NativeBreakpointPauseState(nbp.Breakpoint.Tag as INativeBreakpoint ?? NullNativeBreakpoint.Instance); case DBG.DebuggerPauseReason.Step: return new StepPauseState((DebugStepReason)((DBG.StepPauseState)ps).StepReason); case DBG.DebuggerPauseReason.UserBreak: return new DebuggerPauseState(PauseReason.UserBreak); case DBG.DebuggerPauseReason.Eval: return new DebuggerPauseState(PauseReason.Eval); default: return new DebuggerPauseState(PauseReason.Other); } }
internal IAppDomain FindAppDomainUI(DBG.CorAppDomain appDomain) { dispatcher.VerifyAccess(); var dbg = theDebugger.Debugger; if (dbg == null) return null; foreach (var p in dbg.Processes) { foreach (var ad in p.AppDomains) { if (ad.CorAppDomain == appDomain) return new DebuggerAppDomain(this, ad); } } return null; }
internal IDebuggerThread FindThreadUI(DBG.CorThread thread) { dispatcher.VerifyAccess(); var dbg = theDebugger.Debugger; if (dbg == null) return null; foreach (var p in dbg.Processes) { foreach (var t in p.Threads) { if (t.CorThread == thread) return new DebuggerThread(this, t); } } return null; }
public ThreadEventContext(Debugger debugger, DBG.ThreadDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { this.args = e; }
public DebuggerThread(Debugger debugger, DBG.DnThread thread) { debugger.Dispatcher.VerifyAccess(); this.debugger = debugger; this.thread = thread; this.uniqueId = thread.UniqueId; this.hashCode = thread.GetHashCode(); }
public ClassEventContext(Debugger debugger, DBG.ClassDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { this.args = e; }
public LogMessageEventContext(Debugger debugger, DBG.LogMessageDebugCallbackEventArgs e) : base(debugger, e.Kind.ToDebugEventKind()) { args = e; }