This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
Re: gdb/1847: Step over (next) fails in pthreads programs on recent(NPTL) RedHat Linuxes
- From: Stefan Bylund <steby at enea dot se>
- To: nobody at sources dot redhat dot com
- Cc: gdb-prs at sources dot redhat dot com,
- Date: 27 Nov 2007 10:18:01 -0000
- Subject: Re: gdb/1847: Step over (next) fails in pthreads programs on recent(NPTL) RedHat Linuxes
- Reply-to: Stefan Bylund <steby at enea dot se>
The following reply was made to PR gdb/1847; it has been noted by GNATS.
From: Stefan Bylund <steby@enea.se>
To: gdb-gnats@sources.redhat.com
Cc:
Subject: Re: gdb/1847: Step over (next) fails in pthreads programs on recent
(NPTL) RedHat Linuxes
Date: Tue, 27 Nov 2007 11:12:12 +0100
I have analyzed this issue a bit more and found three different sources
that may interfere with an ongoing single step operation of a thread in
a multi-threaded Linux program:
* Internal longjmp debug support breakpoints
* Internal thread create/death event breakpoints
* Internal shared library load/unload event breakpoints
I haven't been able to find the actual code for this internal breakpoint
handling that messes up an ongoing single step operation of a thread.
However, I have found that by disabling internal longjmp debug support
breakpoints (with GET_LONGJMP_TARGET_P() defined to (0)), things seem to
work a whole lot better! On RHEL 4, I can still get problems with
internal thread create/death event breakpoints but with SUSE 10 the
provided example snippet works as it should by disabling internal
longjmp debug support breakpoints.
GDB bug report 2250 is also related to this issue.
--
---------------------------------
Stefan Bylund
Senior Software Engineer
Enea
Skalholtsgatan 9,
Box 1033, SE-164 21 Kista, Sweden
Direct: +46 8 50 71 43 25
Mobile: +46 709 71 43 25
stefan.bylund@enea.com
www.enea.com
---------------------------------
Enea - Embedded for Leaders
---------------------------------