diff options
| author | Richard Henderson <richard.henderson@linaro.org> | 2021-07-20 05:48:46 -1000 |
|---|---|---|
| committer | Richard Henderson <richard.henderson@linaro.org> | 2021-07-21 07:47:05 -1000 |
| commit | e64cb6c231e0de00f88d4cd0c4dd3481dacfc0d9 (patch) | |
| tree | 5f4709523dbed87f9ef1f0f98a222b1c2064265e /target/avr/gdbstub.c | |
| parent | 5bc31e944019e46daeb7dd4d19280e8333aa448d (diff) | |
| download | focaccia-qemu-e64cb6c231e0de00f88d4cd0c4dd3481dacfc0d9.tar.gz focaccia-qemu-e64cb6c231e0de00f88d4cd0c4dd3481dacfc0d9.zip | |
target/avr: Implement gdb_adjust_breakpoint
Ensure at registration that all breakpoints are in code space, not data space. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/avr/gdbstub.c')
| -rw-r--r-- | target/avr/gdbstub.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/target/avr/gdbstub.c b/target/avr/gdbstub.c index c28ed67efe..1c1b908c92 100644 --- a/target/avr/gdbstub.c +++ b/target/avr/gdbstub.c @@ -82,3 +82,16 @@ int avr_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n) return 0; } + +vaddr avr_cpu_gdb_adjust_breakpoint(CPUState *cpu, vaddr addr) +{ + /* + * This is due to some strange GDB behavior + * Let's assume main has address 0x100: + * b main - sets breakpoint at address 0x00000100 (code) + * b *0x100 - sets breakpoint at address 0x00800100 (data) + * + * Force all breakpoints into code space. + */ + return addr % OFFSET_DATA; +} |