bsnes/snes/debugger/debugger.hpp

33 lines
883 B
C++
Raw Normal View History

class Debugger {
public:
enum class BreakEvent : unsigned {
None,
BreakpointHit,
CPUStep,
SMPStep,
} break_event;
enum { Breakpoints = 8 };
struct Breakpoint {
bool enabled;
unsigned addr;
signed data; //-1 = unused
enum class Mode : unsigned { Exec, Read, Write } mode;
enum class Source : unsigned { CPUBus, APURAM, VRAM, OAM, CGRAM } source;
unsigned counter; //number of times breakpoint has been hit since being set
} breakpoint[Breakpoints];
unsigned breakpoint_hit;
void breakpoint_test(Breakpoint::Source source, Breakpoint::Mode mode, unsigned addr, uint8 data);
bool step_cpu;
bool step_smp;
enum class MemorySource : unsigned { CPUBus, APURAM, VRAM, OAM, CGRAM };
uint8 read(MemorySource, unsigned addr);
void write(MemorySource, unsigned addr, uint8 data);
Debugger();
};
extern Debugger debugger;