Mercurial > repos > blastem
comparison debug.c @ 1963:495569c1dc61
Add support for printing a byte from memory in native debugger. Add stubs for GDB commands qThreadExtraInfo and qP
author | Eric Fry <yuv422@users.noreply.github.com> |
---|---|
date | Tue, 28 Apr 2020 22:03:04 +1000 |
parents | 23394a890508 |
children | 3a46ff899fa6 |
comparison
equal
deleted
inserted
replaced
1962:16d46ff1f620 | 1963:495569c1dc61 |
---|---|
156 } else if ((param[0] == '0' && param[1] == 'x') || param[0] == '$') { | 156 } else if ((param[0] == '0' && param[1] == 'x') || param[0] == '$') { |
157 char *after; | 157 char *after; |
158 uint32_t p_addr = strtol(param+(param[0] == '0' ? 2 : 1), &after, 16); | 158 uint32_t p_addr = strtol(param+(param[0] == '0' ? 2 : 1), &after, 16); |
159 if (after[0] == '.' && after[1] == 'l') { | 159 if (after[0] == '.' && after[1] == 'l') { |
160 value = m68k_read_long(p_addr, context); | 160 value = m68k_read_long(p_addr, context); |
161 } else if (after[0] == '.' && after[1] == 'b') { | |
162 value = m68k_read_word(p_addr, context); | |
163 value &= 0xFF; | |
161 } else { | 164 } else { |
162 value = m68k_read_word(p_addr, context); | 165 value = m68k_read_word(p_addr, context); |
163 } | 166 } |
164 } else if(param[0] == '(' && (param[1] == 'a' || param[1] == 'd') && param[2] >= '0' && param[2] <= '7' && param[3] == ')') { | 167 } else if(param[0] == '(' && (param[1] == 'a' || param[1] == 'd') && param[2] >= '0' && param[2] <= '7' && param[3] == ')') { |
165 uint8_t reg = param[2] - '0'; | 168 uint8_t reg = param[2] - '0'; |
166 uint32_t p_addr = param[1] == 'a' ? context->aregs[reg] : context->dregs[reg]; | 169 uint32_t p_addr = param[1] == 'a' ? context->aregs[reg] : context->dregs[reg]; |
167 if (param[4] == '.' && param[5] == 'l') { | 170 if (param[4] == '.' && param[5] == 'l') { |
168 value = m68k_read_long(p_addr, context); | 171 value = m68k_read_long(p_addr, context); |
172 } else if (param[4] == '.' && param[5] == 'b') { | |
173 value = m68k_read_word(p_addr, context); | |
174 value &= 0xFF; | |
169 } else { | 175 } else { |
170 value = m68k_read_word(p_addr, context); | 176 value = m68k_read_word(p_addr, context); |
171 } | 177 } |
172 } else { | 178 } else { |
173 fprintf(stderr, "Unrecognized parameter to p: %s\n", param); | 179 fprintf(stderr, "Unrecognized parameter to p: %s\n", param); |