Mercurial > repos > blastem
comparison debug.c @ 2208:3809a0bd680e
Fix a couple of Z80 debugger issues
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 27 Aug 2022 22:02:09 -0700 |
parents | 0dcb9e4dee7f |
children | 7591c67b8d1e |
comparison
equal
deleted
inserted
replaced
2207:de3d20e58555 | 2208:3809a0bd680e |
---|---|
2763 case 'h': | 2763 case 'h': |
2764 if (!name[1]) { | 2764 if (!name[1]) { |
2765 *out = context->regs[Z80_H]; | 2765 *out = context->regs[Z80_H]; |
2766 } else if (name[1] == '\'' && !name[2]) { | 2766 } else if (name[1] == '\'' && !name[2]) { |
2767 *out = context->alt_regs[Z80_H]; | 2767 *out = context->alt_regs[Z80_H]; |
2768 } else if (tolower(name[1]) == 'e') { | 2768 } else if (tolower(name[1]) == 'l') { |
2769 if (!name[2]) { | 2769 if (!name[2]) { |
2770 *out = context->regs[Z80_H] << 8 | context->regs[Z80_L]; | 2770 *out = context->regs[Z80_H] << 8 | context->regs[Z80_L]; |
2771 } else if (name[2] == '\'' && !name[3]) { | 2771 } else if (name[2] == '\'' && !name[3]) { |
2772 *out = context->alt_regs[Z80_H] << 8 | context->alt_regs[Z80_L]; | 2772 *out = context->alt_regs[Z80_H] << 8 | context->alt_regs[Z80_L]; |
2773 } else { | 2773 } else { |
3178 fprintf(stderr, "Failed to eval condition for Z80 breakpoint %u\n", (*this_bp)->index); | 3178 fprintf(stderr, "Failed to eval condition for Z80 breakpoint %u\n", (*this_bp)->index); |
3179 free_expr((*this_bp)->condition); | 3179 free_expr((*this_bp)->condition); |
3180 (*this_bp)->condition = NULL; | 3180 (*this_bp)->condition = NULL; |
3181 } | 3181 } |
3182 } | 3182 } |
3183 printf("Z80 Breakpoint %d hit\n", (*this_bp)->index); | 3183 int debugging = 1; |
3184 for (uint32_t i = 0; debugging && i < (*this_bp)->num_commands; i++) | |
3185 { | |
3186 debugging = run_command(root, (*this_bp)->commands + i); | |
3187 } | |
3188 if (debugging) { | |
3189 printf("Z80 Breakpoint %d hit\n", (*this_bp)->index); | |
3190 } else { | |
3191 return context; | |
3192 } | |
3184 } else { | 3193 } else { |
3185 zremove_breakpoint(context, address); | 3194 zremove_breakpoint(context, address); |
3186 } | 3195 } |
3187 uint8_t * pc = get_native_pointer(address, (void **)context->mem_pointers, &context->Z80_OPTS->gen); | 3196 uint8_t * pc = get_native_pointer(address, (void **)context->mem_pointers, &context->Z80_OPTS->gen); |
3188 if (!pc) { | 3197 if (!pc) { |