[Haifux] Multi-thread debugging for C++ on Linux

Ohad Lutzky ohad at lutzky.net
Fri Nov 28 18:12:13 MSK 2008


Hello all,

I am examining the issue of debugging multi-threaded (specifically using
pthreads, and written in C or C++) applications in Linux. The basic tools,
as far as I can tell, are somewhat lacking; while the DDD documentation does
have a screenshot showing a "suspend" button in Status->Threads, this does
not show up in my version of ddd (3.3.11), and I can't really figure out how
to do this from within gdb. Is it even possible? As far as I know, this is
possible with Java, and I'm guessing that it has to do with additional JRE
instrumentation (the debugger tells JRE to suspend the thread, and while the
Linux thread is running, the JRE code therein does a sched_yield).

So my question are:
1. Am I missing something, and this is in fact possible with GDB? If so, is
there a graphical interface (my coworkers are fond of those...) which
supports this?
2. Is there a different Linux (on x86) debugger which does support this?
3. What is the situation of this problem on other OSes?
4. What other neat thread-related debugging tools (other than suspending
individual threads, that is) are there, and which debuggers support them?

I've been trying to google the answers to these questions, but so far I've
come up short. Any wise keywords would be appreciated :)

-- 
Man is the only animal that laughs and weeps, for he is the only animal that
is struck with the difference between what things are and what they ought to
be.
- William Hazlitt

Ohad Lutzky
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://haifux.org/pipermail/haifux/attachments/20081128/99a63e2e/attachment.html 


More information about the Haifux mailing list