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) {