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