mirror of https://github.com/mgba-emu/mgba.git
GBA: Add skeleton of GBA-specific CLI debugger
This commit is contained in:
parent
a8731d280f
commit
4a9b87cfd0
|
@ -0,0 +1,41 @@
|
||||||
|
#include "gba-cli.h"
|
||||||
|
|
||||||
|
#include "gba-thread.h"
|
||||||
|
|
||||||
|
static void _GBACLIDebuggerInit(struct CLIDebuggerSystem*);
|
||||||
|
static void _GBACLIDebuggerDeinit(struct CLIDebuggerSystem*);
|
||||||
|
static uint32_t _GBACLIDebuggerLookupIdentifier(struct CLIDebuggerSystem*, const char* name, struct CLIDebugVector* dv);
|
||||||
|
|
||||||
|
struct CLIDebuggerCommandSummary _GBACLIDebuggerCommands[] = {
|
||||||
|
{ 0, 0, 0, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GBACLIDebugger* GBACLIDebuggerCreate(struct GBAThread* context) {
|
||||||
|
struct GBACLIDebugger* debugger = malloc(sizeof(struct GBACLIDebugger));
|
||||||
|
debugger->d.init = _GBACLIDebuggerInit;
|
||||||
|
debugger->d.deinit = _GBACLIDebuggerDeinit;
|
||||||
|
debugger->d.lookupIdentifier = _GBACLIDebuggerLookupIdentifier;
|
||||||
|
|
||||||
|
debugger->d.name = "Game Boy Advance";
|
||||||
|
debugger->d.commands = _GBACLIDebuggerCommands;
|
||||||
|
|
||||||
|
debugger->context = context;
|
||||||
|
|
||||||
|
return debugger;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void _GBACLIDebuggerInit(struct CLIDebuggerSystem* debugger) {
|
||||||
|
UNUSED(debugger);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void _GBACLIDebuggerDeinit(struct CLIDebuggerSystem* debugger) {
|
||||||
|
UNUSED(debugger);
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint32_t _GBACLIDebuggerLookupIdentifier(struct CLIDebuggerSystem* debugger, const char* name, struct CLIDebugVector* dv) {
|
||||||
|
UNUSED(debugger);
|
||||||
|
UNUSED(name);
|
||||||
|
dv->type = CLIDV_ERROR_TYPE;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
#ifndef GBA_CLI_H
|
||||||
|
#define GBA_CLI_H
|
||||||
|
|
||||||
|
#include "debugger/cli-debugger.h"
|
||||||
|
|
||||||
|
struct GBAThread;
|
||||||
|
|
||||||
|
struct GBACLIDebugger {
|
||||||
|
struct CLIDebuggerSystem d;
|
||||||
|
|
||||||
|
struct GBAThread* context;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GBACLIDebugger* GBACLIDebuggerCreate(struct GBAThread*);
|
||||||
|
|
||||||
|
#endif
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#ifdef USE_CLI_DEBUGGER
|
#ifdef USE_CLI_DEBUGGER
|
||||||
#include "debugger/cli-debugger.h"
|
#include "debugger/cli-debugger.h"
|
||||||
|
#include "gba/gba-cli.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_GDB_STUB
|
#ifdef USE_GDB_STUB
|
||||||
|
@ -146,7 +147,9 @@ bool _parseGraphicsArg(struct SubParser* parser, struct GBAConfig* config, int o
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ARMDebugger* createDebugger(struct GBAArguments* opts, struct GBAThread* context) {
|
struct ARMDebugger* createDebugger(struct GBAArguments* opts, struct GBAThread* context) {
|
||||||
|
#ifndef USE_CLI_DEBUGGER
|
||||||
UNUSED(context);
|
UNUSED(context);
|
||||||
|
#endif
|
||||||
union DebugUnion {
|
union DebugUnion {
|
||||||
struct ARMDebugger d;
|
struct ARMDebugger d;
|
||||||
#ifdef USE_CLI_DEBUGGER
|
#ifdef USE_CLI_DEBUGGER
|
||||||
|
@ -163,6 +166,8 @@ struct ARMDebugger* createDebugger(struct GBAArguments* opts, struct GBAThread*
|
||||||
#ifdef USE_CLI_DEBUGGER
|
#ifdef USE_CLI_DEBUGGER
|
||||||
case DEBUGGER_CLI:
|
case DEBUGGER_CLI:
|
||||||
CLIDebuggerCreate(&debugger->cli);
|
CLIDebuggerCreate(&debugger->cli);
|
||||||
|
struct GBACLIDebugger* gbaDebugger = GBACLIDebuggerCreate(context);
|
||||||
|
CLIDebuggerAttachSystem(&debugger->cli, &gbaDebugger->d);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_GDB_STUB
|
#ifdef USE_GDB_STUB
|
||||||
|
|
Loading…
Reference in New Issue