From 4e07d4cba06727d4179484a68b12ecaada66f305 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Wed, 21 Nov 2018 17:21:43 -0500 Subject: [PATCH] Debugger: Readability improvements (fixes #1238) --- CHANGES | 1 + src/arm/debugger/cli-debugger.c | 13 +++++++------ src/lr35902/debugger/cli-debugger.c | 14 +++++++------- src/lr35902/debugger/debugger.c | 4 ++-- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/CHANGES b/CHANGES index 35e1cc55b..a39c4fc0e 100644 --- a/CHANGES +++ b/CHANGES @@ -143,6 +143,7 @@ Misc: - Python: Minor API improvements - Qt: Minor memory view tweaks - CMake: Fix libswresample version dependencies (fixes mgba.io/i/1229) + - Debugger: Readability improvements (fixes mgba.io/i/1238) 0.7 beta 1: (2018-09-24) - Initial beta for 0.7 diff --git a/src/arm/debugger/cli-debugger.c b/src/arm/debugger/cli-debugger.c index 881b99e11..fe1265a11 100644 --- a/src/arm/debugger/cli-debugger.c +++ b/src/arm/debugger/cli-debugger.c @@ -125,13 +125,14 @@ static void _printStatus(struct CLIDebuggerSystem* debugger) { struct CLIDebuggerBackend* be = debugger->p->backend; struct ARMCore* cpu = debugger->p->d.core->cpu; int r; - for (r = 0; r < 4; ++r) { - be->printf(be, "%08X %08X %08X %08X\n", - cpu->gprs[r << 2], - cpu->gprs[(r << 2) + 1], - cpu->gprs[(r << 2) + 2], - cpu->gprs[(r << 2) + 3]); + for (r = 0; r < 16; r += 4) { + be->printf(be, "%sr%i: %08X %sr%i: %08X %sr%i: %08X %sr%i: %08X\n", + r < 10 ? " " : "", r, cpu->gprs[r], + r < 9 ? " " : "", r + 1, cpu->gprs[r + 1], + r < 8 ? " " : "", r + 2, cpu->gprs[r + 2], + r < 7 ? " " : "", r + 3, cpu->gprs[r + 3]); } + be->printf(be, "cpsr: "); _printPSR(be, cpu->cpsr); int instructionLength; enum ExecutionMode mode = cpu->cpsr.t; diff --git a/src/lr35902/debugger/cli-debugger.c b/src/lr35902/debugger/cli-debugger.c index 7df1ea726..fe85bca27 100644 --- a/src/lr35902/debugger/cli-debugger.c +++ b/src/lr35902/debugger/cli-debugger.c @@ -21,7 +21,7 @@ static struct CLIDebuggerCommandSummary _lr35902Commands[] = { }; static inline void _printFlags(struct CLIDebuggerBackend* be, union FlagRegister f) { - be->printf(be, "[%c%c%c%c]\n", + be->printf(be, "F: [%c%c%c%c]\n", f.z ? 'Z' : '-', f.n ? 'N' : '-', f.h ? 'H' : '-', @@ -82,16 +82,16 @@ static inline uint16_t _printLine(struct CLIDebugger* debugger, uint16_t address static void _printStatus(struct CLIDebuggerSystem* debugger) { struct CLIDebuggerBackend* be = debugger->p->backend; struct LR35902Core* cpu = debugger->p->d.core->cpu; - be->printf(be, "A: %02X F: %02X (AF: %04X)\n", cpu->a, cpu->f.packed, cpu->af); - be->printf(be, "B: %02X C: %02X (BC: %04X)\n", cpu->b, cpu->c, cpu->bc); - be->printf(be, "D: %02X E: %02X (DE: %04X)\n", cpu->d, cpu->e, cpu->de); - be->printf(be, "H: %02X L: %02X (HL: %04X)\n", cpu->h, cpu->l, cpu->hl); - be->printf(be, "PC: %04X SP: %04X\n", cpu->pc, cpu->sp); + be->printf(be, "A: %02X F: %02X (AF: %04X)\n", cpu->a, cpu->f.packed, cpu->af); + be->printf(be, "B: %02X C: %02X (BC: %04X)\n", cpu->b, cpu->c, cpu->bc); + be->printf(be, "D: %02X E: %02X (DE: %04X)\n", cpu->d, cpu->e, cpu->de); + be->printf(be, "H: %02X L: %02X (HL: %04X)\n", cpu->h, cpu->l, cpu->hl); + be->printf(be, "PC: %04X SP: %04X\n", cpu->pc, cpu->sp); struct LR35902Debugger* platDebugger = (struct LR35902Debugger*) debugger->p->d.platform; size_t i; for (i = 0; platDebugger->segments[i].name; ++i) { - be->printf(be, "%s%s: %02X", i ? " " : "", platDebugger->segments[i].name, cpu->memory.currentSegment(cpu, platDebugger->segments[i].start)); + be->printf(be, "%s%s: %02X", i ? " " : "", platDebugger->segments[i].name, cpu->memory.currentSegment(cpu, platDebugger->segments[i].start)); } if (i) { be->printf(be, "\n"); diff --git a/src/lr35902/debugger/debugger.c b/src/lr35902/debugger/debugger.c index 04337f463..02f19138d 100644 --- a/src/lr35902/debugger/debugger.c +++ b/src/lr35902/debugger/debugger.c @@ -213,10 +213,10 @@ static void LR35902DebuggerTrace(struct mDebuggerPlatform* d, char* out, size_t* disPtr += 2; LR35902Disassemble(&info, disPtr, sizeof(disassembly) - (disPtr - disassembly)); - *length = snprintf(out, *length, "A: %02X F: %02X B: %02X C: %02X D: %02X E: %02X H: %02X L: %02X SP: %04X PC: %04X | %s", + *length = snprintf(out, *length, "A: %02X F: %02X B: %02X C: %02X D: %02X E: %02X H: %02X L: %02X SP: %04X PC: %02X:%04X | %s", cpu->a, cpu->f.packed, cpu->b, cpu->c, cpu->d, cpu->e, cpu->h, cpu->l, - cpu->sp, cpu->pc, disassembly); + cpu->sp, cpu->memory.currentSegment(cpu, cpu->pc), cpu->pc, disassembly); } bool LR35902DebuggerGetRegister(struct mDebuggerPlatform* d, const char* name, int32_t* value) {