Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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;
 }