all repos — mgba @ 5caffd1f5a1abde86f735f01aa65430d6ebe9415

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};
15
16#ifdef USE_DEBUGGER
17
18struct DebugBreakpoint {
19	struct DebugBreakpoint* next;
20	int32_t address;
21};
22
23struct DebugMemoryShim {
24	struct ARMMemory d;
25	struct ARMMemory* original;
26
27	struct ARMDebugger* p;
28	struct DebugBreakpoint* watchpoints;
29};
30
31struct ARMDebugger {
32	enum DebuggerState state;
33	struct ARMCore* cpu;
34
35	EditLine* elstate;
36	History* histate;
37
38	struct DebugBreakpoint* breakpoints;
39	struct DebugMemoryShim memoryShim;
40};
41
42void ARMDebuggerInit(struct ARMDebugger*, struct ARMCore*);
43void ARMDebuggerDeinit(struct ARMDebugger*);
44void ARMDebuggerRun(struct ARMDebugger*);
45void ARMDebuggerEnter(struct ARMDebugger*);
46
47#else
48
49struct ARMDebugger {
50	enum DebuggerState state;
51};
52
53#endif
54
55#endif