qemu/linux-user
Nathan Froyd 1e9fa73016 fix gdbstub support for multiple threads in usermode, v3
When debugging multi-threaded programs, QEMU's gdb stub would report the
correct number of threads (the qfThreadInfo and qsThreadInfo packets).
However, the stub was unable to actually switch between threads (the T
packet), since it would report every thread except the first as being
dead.  Furthermore, the stub relied upon cpu_index as a reliable means
of assigning IDs to the threads.  This was a bad idea; if you have this
sequence of events:

initial thread created
new thread #1
new thread #2
thread #1 exits
new thread #3

thread #3 will have the same cpu_index as thread #1, which would confuse
GDB.  (This problem is partly due to the remote protocol not having a
good way to send thread creation/destruction events.)

We fix this by using the host thread ID for the identifier passed to GDB
when debugging a multi-threaded userspace program.  The thread ID might
wrap, but the same sort of problems with wrapping thread IDs would come
up with debugging programs natively, so this doesn't represent a
problem.

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
2009-06-04 10:04:49 +01:00
..
alpha Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
arm Fix compiler warnings in nwfpe code. 2009-05-04 15:19:04 +01:00
cris CRIS: Add a bunch of syscall numbers. 2009-01-07 19:47:53 +00:00
i386 Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
m68k Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
microblaze microblaze: Add syscall, signal and termbits defs for linux-user. 2009-05-26 21:10:21 +02:00
mips MIPS signal handling fixes. 2009-04-21 01:41:10 +00:00
mips64 More efficient target register / TC accesses. 2008-06-27 10:02:35 +00:00
mipsn32 More efficient target register / TC accesses. 2008-06-27 10:02:35 +00:00
ppc linux-user: ppc signal handling 2009-05-16 01:36:12 +04:00
sh4 SH4: Signal handling for the user space emulator, by Magnus Damm. 2007-12-02 06:31:25 +00:00
sparc Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
sparc64 Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
x86_64 x86_64 linux user emulation 2007-11-14 18:08:56 +00:00
elfload32.c Remove unwanted executable properties 2008-04-06 06:04:39 +00:00
elfload.c microblaze: linux-user support. 2009-05-26 21:10:28 +02:00
envlist.c linux-user: Add generic env variable handling 2009-01-30 19:59:17 +00:00
envlist.h linux-user: Add generic env variable handling 2009-01-30 19:59:17 +00:00
errno_defs.h Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00: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 Replace gcc variadic macro extension with C99 version 2009-05-13 17:53:17 +00:00
ioctls.h Add MTIOCTOP, MTIOCGET and MTIOCPOS ioctls (Kirill Shutemov). 2008-09-20 03:03:09 +00:00
linux_loop.h Fix build failure with old kernel headers (loop.h is incompatible with 2008-05-23 16:06:43 +00:00
linuxload.c suppressed tgetx and tputx (initial patch by Thayne Harbaugh) 2007-11-16 10:46:05 +00:00
m68k-sim.c Fix more FSF addresses 2009-01-05 18:11:53 +00:00
main.c microblaze: linux-user support. 2009-05-26 21:10:28 +02:00
mmap.c Partialy fix mmap at EOF for large pagesize targets in user-mode. 2009-02-03 23:06:34 +00:00
path.c linux-user: don't crash with null name 2009-01-30 19:48:07 +00:00
qemu-types.h linux-user: Move abi_* typedefs into qemu-types.h 2008-12-08 18:12:04 +00:00
qemu.h Avoid implicit truncation compiler warnings 2009-05-19 15:42:39 +01:00
signal.c microblaze: linux-user support. 2009-05-26 21:10:28 +02:00
socket.h Various linux-user structures and definitions fixes for PowerPC targets. 2007-12-10 08:24:59 +00:00
strace.c Use the ARRAY_SIZE() macro where appropriate. 2008-12-22 20:33:55 +00:00
strace.list linux-user: Added posix message queue syscalls except mq_notify 2009-04-15 16:11:43 +00:00
syscall_defs.h microblaze: linux-user support. 2009-05-26 21:10:28 +02:00
syscall_types.h Add MTIOCTOP, MTIOCGET and MTIOCPOS ioctls (Kirill Shutemov). 2008-09-20 03:03:09 +00:00
syscall.c fix gdbstub support for multiple threads in usermode, v3 2009-06-04 10:04:49 +01:00
uaccess.c Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
vm86.c Convert references to logfile/loglevel to use qemu_log*() macros 2009-01-15 22:34:14 +00:00