mirror of https://github.com/mgba-emu/mgba.git
Debugger: Add event dumping
This commit is contained in:
parent
e27e333305
commit
0026249806
1
CHANGES
1
CHANGES
|
@ -13,6 +13,7 @@ Features:
|
||||||
- New unlicensed GB mappers: Pokémon Jade/Diamond, BBD, and Hitek
|
- New unlicensed GB mappers: Pokémon Jade/Diamond, BBD, and Hitek
|
||||||
- Stack tracing tools in ARM debugger (by ahigerd)
|
- Stack tracing tools in ARM debugger (by ahigerd)
|
||||||
- Command scripts for CLI debugger (by ahigerd)
|
- Command scripts for CLI debugger (by ahigerd)
|
||||||
|
- Scheduled event dumping in CLI debugger
|
||||||
- ARM disassembler now resolves addresses to symbol names
|
- ARM disassembler now resolves addresses to symbol names
|
||||||
- Add Game Boy Player feature support to ports
|
- Add Game Boy Player feature support to ports
|
||||||
- Individual window types can now be toggled in debugging views
|
- Individual window types can now be toggled in debugging views
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include <mgba/internal/debugger/symbols.h>
|
#include <mgba/internal/debugger/symbols.h>
|
||||||
|
|
||||||
#include <mgba/core/core.h>
|
#include <mgba/core/core.h>
|
||||||
|
#include <mgba/core/timing.h>
|
||||||
#include <mgba/core/version.h>
|
#include <mgba/core/version.h>
|
||||||
#include <mgba/internal/debugger/parser.h>
|
#include <mgba/internal/debugger/parser.h>
|
||||||
#include <mgba-util/string.h>
|
#include <mgba-util/string.h>
|
||||||
|
@ -66,6 +67,7 @@ static void _writeWord(struct CLIDebugger*, struct CLIDebugVector*);
|
||||||
static void _dumpByte(struct CLIDebugger*, struct CLIDebugVector*);
|
static void _dumpByte(struct CLIDebugger*, struct CLIDebugVector*);
|
||||||
static void _dumpHalfword(struct CLIDebugger*, struct CLIDebugVector*);
|
static void _dumpHalfword(struct CLIDebugger*, struct CLIDebugVector*);
|
||||||
static void _dumpWord(struct CLIDebugger*, struct CLIDebugVector*);
|
static void _dumpWord(struct CLIDebugger*, struct CLIDebugVector*);
|
||||||
|
static void _events(struct CLIDebugger*, struct CLIDebugVector*);
|
||||||
#ifdef ENABLE_SCRIPTING
|
#ifdef ENABLE_SCRIPTING
|
||||||
static void _source(struct CLIDebugger*, struct CLIDebugVector*);
|
static void _source(struct CLIDebugger*, struct CLIDebugVector*);
|
||||||
#endif
|
#endif
|
||||||
|
@ -81,6 +83,7 @@ static struct CLIDebuggerCommandSummary _debuggerCommands[] = {
|
||||||
{ "continue", _continue, "", "Continue execution" },
|
{ "continue", _continue, "", "Continue execution" },
|
||||||
{ "delete", _clearBreakpoint, "I", "Delete a breakpoint or watchpoint" },
|
{ "delete", _clearBreakpoint, "I", "Delete a breakpoint or watchpoint" },
|
||||||
{ "disassemble", _disassemble, "Ii", "Disassemble instructions" },
|
{ "disassemble", _disassemble, "Ii", "Disassemble instructions" },
|
||||||
|
{ "events", _events, "", "Print list of scheduled events" },
|
||||||
{ "finish", _finish, "", "Execute until current stack frame returns" },
|
{ "finish", _finish, "", "Execute until current stack frame returns" },
|
||||||
{ "help", _printHelp, "S", "Print help" },
|
{ "help", _printHelp, "S", "Print help" },
|
||||||
{ "listb", _listBreakpoints, "", "List breakpoints" },
|
{ "listb", _listBreakpoints, "", "List breakpoints" },
|
||||||
|
@ -768,6 +771,15 @@ static void _printStatus(struct CLIDebugger* debugger, struct CLIDebugVector* dv
|
||||||
debugger->system->printStatus(debugger->system);
|
debugger->system->printStatus(debugger->system);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void _events(struct CLIDebugger* debugger, struct CLIDebugVector* dv) {
|
||||||
|
UNUSED(dv);
|
||||||
|
struct mTiming* timing = debugger->d.core->timing;
|
||||||
|
struct mTimingEvent* next = timing->root;
|
||||||
|
for (; next; next = next->next) {
|
||||||
|
debugger->backend->printf(debugger->backend, "%s in %i cycles\n", next->name, mTimingUntil(timing, next));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
struct CLIDebugVector* CLIDVParse(struct CLIDebugger* debugger, const char* string, size_t length) {
|
struct CLIDebugVector* CLIDVParse(struct CLIDebugger* debugger, const char* string, size_t length) {
|
||||||
if (!string || length < 1) {
|
if (!string || length < 1) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue