public bool ProcessBreakpointEvent(IntPtr hThread, ref Context context) { // Process each target registered to this breakpoint List<Target> targets = new List<Target>(_targets); List<Target> processedTargets = new List<Target>(_targets.Count); foreach (Target target in targets) { // Ask the target to prcess the breakpoint event if (!processedTargets.Contains(target)) { int index = targets.IndexOf(target); target.ProcessBreakpointEvent(this, hThread, ref context, Names[index]); processedTargets.Add(target); } } return true; }
public virtual void SetLong(long value, Context context) { // Set the underlying element to the specified value if (this.GetProcess().IsWin64) { MemoryFunctions.WriteMemory(this.GetProcess().ProcessDotNet, (IntPtr)Address, value); } else { MemoryFunctions.WriteMemory(this.GetProcess().ProcessDotNet, (IntPtr)Address, (Int32) value); } // Read the data again try { Data = MemoryFunctions.ReadMemory(process.ProcessDotNet, Address, (uint)Size); } catch (Exception e) { Data = null; } }
public void ProcessBreakpointEvent(Breakpoint breakpoint, IntPtr hThread, ref Context context, string eventName) { // Ask the process manager handle the breakpoint event _process.HandleBreakpointEvent(this, breakpoint, hThread, context, eventName); }
public FunctionArguments ParseArguments(List stackSpec, List regSpec, Context context) { return new FunctionArguments(_pyBoss, context, stackSpec, regSpec, this); }
public void HandleBreakpointEvent(Target target, Breakpoint breakpoint, IntPtr hThread, Context context, string eventName) { try { this.PyProcess.breakpoint_hit(target.PyTarget, eventName, context.GetIP(), context, hThread); } catch (Exception e) { _pyBoss.PrintError(e, string.Format("'Process' handler for instance '{0}' failed during attempt to call 'breakpoint_hit()':", _name)); } }