public override string ShouldBreak(IDebuggerEngine engine)
 {
     for (int address = AddressStart; address <= AddressEnd; address++)
     {
         if (address > engine.CoreSize)
         {
             address = 0;
         }
         CoreEventRecord  record           = engine.CoreEvents[address];
         InstructionEvent instructionEvent = record.Event & Event;
         if (record.Cycle == engine.Cycle - 1 && instructionEvent != InstructionEvent.None)
         {
             return("Core event " + instructionEvent + " on address " + address);
         }
     }
     return(null);
 }
示例#2
0
 public static Color GetEventColor(InstructionEvent evnt)
 {
     if ((evnt & InstructionEvent.WrittenInstruction) != 0)
     {
         return flashWriteColor;
     }
     else if ((evnt & InstructionEvent.Died) != 0)
     {
         return flashDiedColor;
     }
     else if ((evnt & InstructionEvent.Executed) != 0)
     {
         return flashExecuteColor;
     }
     else if ((evnt & InstructionEvent.Read) != 0)
     {
         return flashReadColor;
     }
     else
     {
         throw new ApplicationException("Invalid call");
     }
 }
 public CoreEventBreakpoint(InstructionEvent evnt, int addressStart, int addressEnd)
 {
     Event        = evnt;
     AddressStart = addressStart;
     AddressEnd   = addressEnd;
 }