public NativeCodeBreakpointConditionContext(DnDebugger debugger, DnNativeCodeBreakpoint bp, BreakpointDebugCallbackEventArgs e) : base(debugger) { NativeCodeBreakpoint = bp; E = e; }
public NativeCodeBreakpointPauseState(DnNativeCodeBreakpoint bp) : base(DebuggerPauseReason.NativeCodeBreakpoint) { this.bp = bp; }
public NativeCodeBreakpointConditionContext(DnDebugger debugger, DnNativeCodeBreakpoint bp) : base(debugger) { NativeCodeBreakpoint = bp; }
/// <summary> /// Creates a native instruction breakpoint /// </summary> /// <param name="code">Native code</param> /// <param name="offset">Offset</param> /// <param name="cond">Condition</param> /// <returns></returns> public DnNativeCodeBreakpoint CreateNativeBreakpoint(CorCode code, uint offset, Func<NativeCodeBreakpointConditionContext, bool> cond) { DebugVerifyThread(); var bp = new DnNativeCodeBreakpoint(code, offset, cond); var module = code.Function?.Module?.DnModuleId ?? new DnModuleId(); nativeCodeBreakpointList.Add(module, bp); foreach (var dnMod in GetLoadedDnModules(module)) bp.AddBreakpoint(dnMod); return bp; }
/// <summary> /// Creates a native instruction breakpoint /// </summary> /// <param name="module">Module</param> /// <param name="token">Method token</param> /// <param name="offset">Offset</param> /// <param name="cond">Condition</param> /// <returns></returns> public DnNativeCodeBreakpoint CreateNativeBreakpoint(DnModuleId module, uint token, uint offset, Func<NativeCodeBreakpointConditionContext, bool> cond) { DebugVerifyThread(); var bp = new DnNativeCodeBreakpoint(module, token, offset, cond); nativeCodeBreakpointList.Add(module, bp); foreach (var dnMod in GetLoadedDnModules(module)) bp.AddBreakpoint(dnMod); return bp; }
public void Initialize(DnDebugger dbg) { Debug.Assert(debugger.Dispatcher.CheckAccess()); Debug.Assert(dbgBreakpoint == null); if (dbgBreakpoint != null) throw new InvalidOperationException(); if (code == null) dbgBreakpoint = dbg.CreateNativeBreakpoint(module.ToSerializedDnModule(), token, offset, a => cond(this)); else dbgBreakpoint = dbg.CreateNativeBreakpoint(code.CorCode, offset, a => cond(this)); dbgBreakpoint.IsEnabled = isEnabled; dbgBreakpoint.Tag = this; }