e140a6d124
- Introduce KAIZEN_JIT_ENABLED optional define instead of relying on __aarch64__ and the like. - More cache work
34 lines
915 B
C++
34 lines
915 B
C++
#pragma once
|
|
#include <backend/Core.hpp>
|
|
#include <Disassembler.hpp>
|
|
|
|
void BreakpointFunc(s64, Disassembler::DisassemblyResult &);
|
|
void AddressFunc(s64, Disassembler::DisassemblyResult &);
|
|
void InstructionFunc(s64, Disassembler::DisassemblyResult &);
|
|
|
|
class Debugger final {
|
|
bool enabled = false;
|
|
static constexpr auto MAX_LINES_OF_DISASM = 150;
|
|
|
|
struct Column {
|
|
const char *name = nullptr;
|
|
void (*func)(s64, Disassembler::DisassemblyResult &) = nullptr;
|
|
};
|
|
|
|
std::array<Column, 3> columns = {
|
|
Column{"##BreakpointColumn", &BreakpointFunc},
|
|
Column{"Address", &AddressFunc},
|
|
Column{"Instruction", &InstructionFunc},
|
|
};
|
|
|
|
public:
|
|
static void RegisterView();
|
|
bool followPC = true;
|
|
void Open(bool wantFollowPC = true) {
|
|
enabled = true;
|
|
followPC = wantFollowPC;
|
|
}
|
|
void Close() { enabled = false; }
|
|
bool render();
|
|
};
|