From: Bob Carragher (dancebob_at_mindspring.com)
Date: Fri May 24 2002 - 05:36:14 BST
Hello,
I believe I have finally found a working solution for using UPS to
debug a program that uses threads (pthread.h) under Linux. (I'll
fully describe the setup below.) The solution is based on what
was suggested previously for following a forked child process.
Under Linux, each thread is given its own process, with a process
ID. Since my program is command-driven, I simply started it up so
that it would wait at the command prompt, and then attached the
debugger to the appropriate process.
There were 3 processes that were generated, although that is
probably due to the fact that my program generates 2 threads from
the main thread. In trying to attach to 2 of these 3 threads,
the debugger would display the message,
Wait returned -1: Success
and become munged. Attaching to the lowest-numbered process is
what seems to work.
I hope this helps anyone else out there who might be experiencing
this problem!
Bob Carragher
P.S. For those interested, I am running Redhat Linux 6.2, which
uses kernel 2.2.14. My compiler is g++ (version 2.95.3). I have
been trying this with every version of UPS since 3.34, but I
applied the workaround using 3.37-beta5. My hardware is a Dell
Inspiron 3800 laptop, which uses a 600 MHz Pentium III.
This archive was generated by hypermail 2.1.4 : Mon May 27 2002 - 11:55:23 BST