all repos — mgba @ 4659635fb57e27c15bc2419130d5e0c9542d6fef

mGBA Game Boy Advance Emulator

src/debugger/debugger.h (view raw)

 1#ifndef DEBUGGER_H
 2#define DEBUGGER_H
 3
 4#ifdef USE_DEBUGGER
 5#include <histedit.h>
 6
 7#include "arm.h"
 8#endif
 9
10enum DebuggerState {
11	DEBUGGER_PAUSED,
12	DEBUGGER_RUNNING,
13	DEBUGGER_EXITING,
14	DEBUGGER_SHUTDOWN
15};
16
17#ifdef USE_DEBUGGER
18
19struct DebugBreakpoint {
20	struct DebugBreakpoint* next;
21	int32_t address;
22};
23
24struct DebugMemoryShim {
25	struct ARMMemory d;
26	struct ARMMemory* original;
27
28	struct ARMDebugger* p;
29	struct DebugBreakpoint* watchpoints;
30};
31
32struct ARMDebugger {
33	enum DebuggerState state;
34	struct ARMCore* cpu;
35
36	EditLine* elstate;
37	History* histate;
38
39	struct DebugBreakpoint* breakpoints;
40	struct DebugMemoryShim memoryShim;
41};
42
43void ARMDebuggerInit(struct ARMDebugger*, struct ARMCore*);
44void ARMDebuggerDeinit(struct ARMDebugger*);
45void ARMDebuggerRun(struct ARMDebugger*);
46void ARMDebuggerEnter(struct ARMDebugger*);
47
48#else
49
50struct ARMDebugger {
51	enum DebuggerState state;
52};
53
54#endif
55
56#endif