This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
gdbserver, NPTL pthreads and PEEKUSER based targets
- From: Daniel THOMPSON <daniel dot thompson at st dot com>
- To: gdb at sources dot redhat dot com
- Date: Thu, 31 Mar 2005 16:43:04 +0100
- Subject: gdbserver, NPTL pthreads and PEEKUSER based targets
- Organization: STMicroelectronics (R&D) Ltd
Hi folks
I am trying to port gdbserver to work on NPTL kernels on an architecture
that fetchs registers using PTRACE_PEEKUSER rather than PTRACE_GETREGS
(in my specific case the SH4).
I have written a hacky but working implementation of ps_lgetregs(). This
is sufficient to get through he shared library loading without spitting
out invalid data packets and works well enough for the threads_db code
to correctly identify the root thread triplet (pid, lwp, tid).
Unfortunately the gdbserver bails out inside pthread_create() with an
SIGTRAP signal. The other oddity I noted is that where the x86 does a
PTRACE_ATTACH to LWP pid+4 inside pthread_create(), the SH4 is attaching
to LWP pid+1 which does not seem right as this would not be the LWP of
the spawned thread.
I have tried comparing the strace's of gdb vs. gdbserver but did not
notice anything very useful.
--
Daniel Thompson (STMicroelectronics) <daniel.thompson@st.com>
1000 Aztec West, Almondsbury, Bristol, BS32 4SQ. 01454 462659
If a car is a horseless carriage then is a motorcycle a horseless horse?