mirror of
https://github.com/pevans/erc-c.git
synced 2025-08-15 18:27:37 +00:00
Add jump debug command
This commit is contained in:
@@ -68,6 +68,7 @@ extern vm_debug_cmd *vm_debug_find_cmd(const char *);
|
|||||||
extern void vm_debug_execute(const char *);
|
extern void vm_debug_execute(const char *);
|
||||||
|
|
||||||
extern DEBUG_CMD(help);
|
extern DEBUG_CMD(help);
|
||||||
|
extern DEBUG_CMD(jump);
|
||||||
extern DEBUG_CMD(printaddr);
|
extern DEBUG_CMD(printaddr);
|
||||||
extern DEBUG_CMD(printstate);
|
extern DEBUG_CMD(printstate);
|
||||||
extern DEBUG_CMD(resume);
|
extern DEBUG_CMD(resume);
|
||||||
|
@@ -15,6 +15,8 @@
|
|||||||
vm_debug_cmd cmdtable[] = {
|
vm_debug_cmd cmdtable[] = {
|
||||||
{ "help", "h", vm_debug_cmd_help, 0, "",
|
{ "help", "h", vm_debug_cmd_help, 0, "",
|
||||||
"Print out this list of commands", },
|
"Print out this list of commands", },
|
||||||
|
{ "jump", "j", vm_debug_cmd_jump, 1, "<addr>",
|
||||||
|
"Jump to <addr> for next execution", },
|
||||||
{ "printaddr", "pa", vm_debug_cmd_printaddr, 1, "<addr>",
|
{ "printaddr", "pa", vm_debug_cmd_printaddr, 1, "<addr>",
|
||||||
"Print the value at memory address <addr>", },
|
"Print the value at memory address <addr>", },
|
||||||
{ "printstate", "ps", vm_debug_cmd_printstate, 0, "",
|
{ "printstate", "ps", vm_debug_cmd_printstate, 0, "",
|
||||||
@@ -181,3 +183,12 @@ DEBUG_CMD(printaddr)
|
|||||||
|
|
||||||
fprintf(stream, "$%02X\n", mos6502_get(cpu, args->addr1));
|
fprintf(stream, "$%02X\n", mos6502_get(cpu, args->addr1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEBUG_CMD(jump)
|
||||||
|
{
|
||||||
|
// FIXME: same issue as for printaddr -- overall we need to refactor
|
||||||
|
// vm_reflect quite a bit
|
||||||
|
|
||||||
|
mos6502 *cpu = (mos6502 *)vm_di_get(VM_CPU);
|
||||||
|
cpu->PC = args->addr1;
|
||||||
|
}
|
||||||
|
@@ -108,3 +108,10 @@ Test(vm_debug, cmd_printaddr)
|
|||||||
vm_debug_cmd_printaddr(&args);
|
vm_debug_cmd_printaddr(&args);
|
||||||
cr_assert_str_eq(buf, "$7F\n");
|
cr_assert_str_eq(buf, "$7F\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Test(vm_debug, jump)
|
||||||
|
{
|
||||||
|
args.addr1 = 123;
|
||||||
|
vm_debug_cmd_jump(&args);
|
||||||
|
cr_assert_eq(mach->cpu->PC, 123);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user