]> git.proxmox.com Git - mirror_qemu.git/commit
linux-user/arm: Deliver SIGTRAP for UDF patterns used as breakpoints
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 17 Nov 2020 15:56:34 +0000 (15:56 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 23 Nov 2020 11:04:51 +0000 (11:04 +0000)
commitacebed948c4f2f3be89ba91f4cba1905a8b66318
tree6f194d1c721ee2459964582a74d0a2d69a76b278
parent6951595183e5481931f03284d5cc6a481fe7c713
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
linux-user/arm/cpu_loop.c