xqemu/linux-user
Peter Maydell b10089a14c linux-user: Don't call gdb_handlesig() before queue_signal()
The CPU main-loop routines for linux-user generally
call gdb_handlesig() when they're about to queue a
SIGTRAP signal. This is wrong, because queue_signal()
will cause us to pend a signal, and process_pending_signals()
will then call gdb_handlesig() itself. So the effect is that
we notify gdb of the SIGTRAP, and then if gdb says "OK,
continue with signal X" we will incorrectly notify
gdb of the signal X as well. We don't do this double-notify
for anything else, only SIGTRAP.

Remove this unnecessary and incorrect code from all
the targets except for nios2 (whose main loop is
doing something different and broken, and will be handled
in a separate patch).

This bug only manifests if the user responds to the reported
SIGTRAP using "signal SIGFOO" rather than "continue"; since
the latter is the overwhelmingly common thing to do after a
breakpoint most people won't have hit this.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20181019174958.26616-2-peter.maydell@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2018-11-12 15:48:00 +01:00
..
aarch64 linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
alpha linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
arm linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
cris linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
generic linux-user: move generic signal definitions to generic/signal.h 2018-06-04 01:30:44 +02:00
host linux-user: ppc64: don't use volatile register during safe_syscall 2018-07-31 09:57:43 +02:00
hppa linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
i386 linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
m68k linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
microblaze linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
mips linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
mips64 linux-user: Add prctl() PR_SET_FP_MODE and PR_GET_FP_MODE implementations 2018-10-29 15:50:31 +01:00
nios2 linux-user: Do not report "syscall not implemented" by default 2018-07-09 00:52:04 +02:00
openrisc linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
ppc linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
riscv linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
s390x linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
sh4 linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
sparc linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
sparc64 linux-user/sparc64: Add inotify_rm_watch and tee syscalls 2018-06-11 14:47:45 +02:00
tilegx linux-user: move generic signal definitions to generic/signal.h 2018-06-04 01:30:44 +02:00
x86_64 linux-user: move generic signal definitions to generic/signal.h 2018-06-04 01:30:44 +02:00
xtensa linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
Makefile.objs linux-user: move TargetFdTrans functions to their own file 2018-09-25 22:36:47 +02:00
cpu_loop-common.h linux-user: create a dummy per arch cpu_loop.c 2018-04-30 09:47:55 +02:00
elfload.c linux-user: Read and set FP ABI value from MIPS abiflags 2018-10-29 15:50:31 +01:00
errno_defs.h linux-user: Handle ERFKILL and EHWPOISON 2017-01-22 18:14:10 -08:00
exit.c linux-user: add gcov support to preexit_cleanup 2018-07-05 15:59:41 +01:00
fd-trans.c linux-user: move TargetFdTrans functions to their own file 2018-09-25 22:36:47 +02:00
fd-trans.h linux-user: move TargetFdTrans functions to their own file 2018-09-25 22:36:47 +02:00
flat.h Support for 32 bit ABI on 64 bit targets (only enabled Sparc64) 2007-10-14 16:27:31 +00:00
flatload.c linux-user/flatload: fix initial stack pointer alignment 2018-10-30 11:23:32 -07:00
ioctls.h linux-user: Implement special usbfs ioctls. 2018-10-19 14:05:10 +02:00
linux_loop.h linux-user: Add loop control ioctls 2016-07-19 15:22:33 +03:00
linuxload.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00
m68k-sim.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00
main.c qom: convert the CPU list to RCU 2018-08-23 18:46:25 +02:00
mmap.c linux-user/mmap.c: handle invalid len maps correctly 2018-07-31 09:57:25 +02:00
qemu.h QEMU trivial patches collected between June and October 2018 2018-10-30 15:49:55 +00:00
safe-syscall.S linux-user: Provide safe_syscall for fixing races between signals and syscalls 2016-05-27 14:49:51 +03:00
signal-common.h linux-user: introduce target_sigsp() and target_save_altstack() 2018-05-03 18:29:15 +02:00
signal.c linux-user: Implement signals for openrisc 2018-07-03 22:40:33 +09:00
socket.h linux-user: update ARCH_HAS_SOCKET_TYPES use 2018-05-25 10:10:55 +02:00
strace.c linux-user: Add preprocessor availability control to some syscalls 2018-08-16 19:18:45 +02:00
strace.list linux-user/strace: Improve recvmsg() output 2018-07-03 16:27:15 +02:00
syscall.c linux-user: Add prctl() PR_SET_FP_MODE and PR_GET_FP_MODE implementations 2018-10-29 15:50:31 +01:00
syscall_defs.h linux-user: Implement special usbfs ioctls. 2018-10-19 14:05:10 +02:00
syscall_types.h linux-user: Implement special usbfs ioctls. 2018-10-19 14:05:10 +02:00
target_flat.h linux-user/FLAT: allow targets to override FLAT processing 2011-02-09 10:33:54 +02:00
trace-events trace-events: fix code style: print 0x before hex numbers 2017-08-01 12:13:07 +01:00
uaccess.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
uname.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00
uname.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
vm86.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00