diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2020-11-17 15:56:34 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2020-11-23 11:04:51 +0000 |
| commit | acebed948c4f2f3be89ba91f4cba1905a8b66318 (patch) | |
| tree | 6f194d1c721ee2459964582a74d0a2d69a76b278 /hw/avr/arduino.c | |
| parent | 6951595183e5481931f03284d5cc6a481fe7c713 (diff) | |
| download | focaccia-qemu-acebed948c4f2f3be89ba91f4cba1905a8b66318.tar.gz focaccia-qemu-acebed948c4f2f3be89ba91f4cba1905a8b66318.zip | |
linux-user/arm: Deliver SIGTRAP for UDF patterns used as breakpoints
The Linux kernel doesn't use the official bkpt insn for breakpoints; instead it uses three instructions in the guaranteed-to-UNDEF space, and generates SIGTRAP for these rather than the SIGILL that most UNDEF insns generate: https://elixir.bootlin.com/linux/v5.9.8/source/arch/arm/kernel/ptrace.c#L197 Make QEMU treat these insns specially too. The main benefit of this is that if you're running a debugger on a guest program that runs into a GCC __builtin_trap() or LLVM "trap because execution should never reach here" then you'll get the expected signal rather than a SIGILL. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20201117155634.6924-1-peter.maydell@linaro.org
Diffstat (limited to 'hw/avr/arduino.c')
0 files changed, 0 insertions, 0 deletions