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); }
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; }