private void SetActualBP() { switch (bpType) { case BreakpointType.Read: gecko.BreakpointR(bpAddress, bpExact); break; case BreakpointType.Write: gecko.BreakpointW(bpAddress, bpExact); break; case BreakpointType.ReadWrite: gecko.BreakpointRW(bpAddress, bpExact); break; case BreakpointType.Execute: gecko.BreakpointX(bpAddress); break; default: gecko.Step(); break; } BPSet = true; gecko.Resume(); listSet = false; }
public bool Compare(Stream regStream, BreakpointType bpType, uint bpAddress, TCPGecko gecko) { if (regStream.Length != 0x120) { return(false); } int spos = PRegister * 4; uint val = 0; if (spos == 0x120) { switch (bpType) { case BreakpointType.Read: val = gecko.peek(bpAddress); break; case BreakpointType.ReadWrite: case BreakpointType.Write: gecko.Step(); val = gecko.peek(bpAddress); break; default: return(true); } } else { regStream.Seek(spos, SeekOrigin.Begin); val = GlobalFunctions.ReadStream(regStream); } switch (PCondition) { case BreakpointComparison.Equal: return(val == value); case BreakpointComparison.NotEqual: return(val != value); case BreakpointComparison.Greater: return(val > value); case BreakpointComparison.GreaterEqual: return(val >= value); case BreakpointComparison.Lower: return(val < value); case BreakpointComparison.LowerEqual: return(val <= value); } return(true); }