private AD7PendingBreakpoint BindToAddress(string bkptno, ulong addr, /*OPTIONAL*/ TupleValue frame, out AD7BoundBreakpoint bbp) { bbp = null; AD7PendingBreakpoint pending = CodeBreakpoints.FirstOrDefault((p) => { return(p.BreakpointId == bkptno); }); if (pending == null) { return(null); } // the breakpoint number is known, check to see if it is known to be bound to this address bbp = Array.Find(pending.EnumBoundBreakpoints(), (b) => b.Addr == addr); if (bbp == null) { // add this address as a bound breakpoint bbp = Array.Find(pending.EnumBoundBreakpoints(), (b) => b.Addr == 0); if (bbp != null) // <MULTIPLE> { bbp.UpdateAddr(addr); } else { bbp = pending.AddBoundBreakpoint(new BoundBreakpoint(pending.PendingBreakpoint, addr, frame)); } } return(pending); }
private void RebindAddresses(AD7PendingBreakpoint pending, List <BoundBreakpoint> boundList) { if (boundList.Count == 0) { return; } var bkpt = Array.Find(pending.EnumBoundBreakpoints(), (b) => b.Addr == 0); int i = 0; if (bkpt != null) { bkpt.UpdateAddr(boundList[0].Addr); // replace <MULTIPLE> placeholder address i = 1; } for (; i < boundList.Count; ++i) { pending.AddBoundBreakpoint(boundList[i]); } }
private void RebindAddresses(AD7PendingBreakpoint pending, List<BoundBreakpoint> boundList) { if (boundList.Count == 0) { return; } var bkpt = Array.Find(pending.EnumBoundBreakpoints(), (b) => b.Addr == 0); int i = 0; if (bkpt != null) { bkpt.UpdateAddr(boundList[0].Addr); // replace <MULTIPLE> placeholder address i = 1; } for (; i < boundList.Count; ++i) { pending.AddBoundBreakpoint(boundList[i]); } }