public WatchpointDescriptor(ulong address, SysbusAccessWidth width, Access access, BusHookDelegate hook)
 {
     Address = address;
     Width   = width;
     Access  = access;
     Hook    = hook;
 }
 private void AccessWatchpointHook(ICpuSupportingGdb cpu, ulong address, SysbusAccessWidth width, uint value)
 {
     //? I See a possible problem here.
     //? Here we call `Halt` event with T05 argument, but in a second we will call it once again with S05 in HandleStepping@TranlationCPU.
     //? It seems to work fine with GDB, but... I don't know if it is fully correct.
     cpu.EnterSingleStepModeSafely(new HaltArguments(HaltReason.Breakpoint, cpu.Id, address, BreakpointType.AccessWatchpoint), manager.BlockOnStep);
 }
 public WatchpointDescriptor(ulong address, SysbusAccessWidth width, Access access, Action <ICpuSupportingGdb, ulong, SysbusAccessWidth> hook)
 {
     Address = address;
     Width   = width;
     Access  = access;
     Hook    = hook;
 }
 private void ReadWatchpointHook(ICpuSupportingGdb cpu, ulong address, SysbusAccessWidth width, uint value)
 {
     cpu.EnterSingleStepModeSafely(new HaltArguments(HaltReason.Breakpoint, cpu.Id, address, BreakpointType.ReadWatchpoint), manager.BlockOnStep);
 }
 private void WriteWatchpointHook(ICpuSupportingGdb cpu, ulong address, SysbusAccessWidth width)
 {
     cpu.EnterSingleStepModeSafely(new HaltArguments(HaltReason.Breakpoint, cpu.Id, address, BreakpointType.WriteWatchpoint));
 }
Esempio n. 6
0
 private void ReadWatchpointHook(ulong address, SysbusAccessWidth width)
 {
     manager.Cpu.EnterSingleStepModeSafely(new HaltArguments(HaltReason.Breakpoint, address, BreakpointType.ReadWatchpoint));
 }