This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
unable to debug statically linked program with linux threads
- From: "Ajay Patel" <ajayp at kymasys dot com>
- To: gdb at sources dot redhat dot com
- Date: Thu, 17 Mar 2005 14:06:57 -0800
- Subject: unable to debug statically linked program with linux threads
Hi,
I have a FC3 based i686 machine with gdb version 6.1.
I got a simple threaded program from one BSD. (program attached)
With dynamic linking (linux threads), I can run
the program under gdb without a problem.
All thread related commands seems to work properly.
With static linking, when I run this program under
gdb, first I get
"Program received signal SIG32/SIG33 Real-time event 32/32".
I avoid this problem by
"handle SIG32/SIG33 pass nostop noprint".
However none of the thread related command works.
Any suggestion?
Thanks
Ajay
/****************************************************************************
*
* Simple diff mode test.
*
* $FreeBSD: src/lib/libpthread/test/hello_d.c,v 1.1 2000/04/24 21:07:37
jasone Exp $
*
****************************************************************************/
#include <stdio.h>
#include <string.h>
#include <pthread.h>
void *
entry1(void * a_arg)
{
fprintf(stderr, "Hello world1\n");
sleep(100);
}
void *
entry2(void * a_arg)
{
fprintf(stderr, "Hello world2\n");
sleep(100);
}
int
main()
{
pthread_t thread1, thread2;
int error;
error = pthread_create(&thread1, NULL, entry1, NULL);
if (error)
fprintf(stderr, "Error in pthread_create(): %s\n",
strerror(error));
error = pthread_create(&thread2, NULL, entry2, NULL);
if (error)
fprintf(stderr, "Error in pthread_create(): %s\n",
strerror(error));
error = pthread_join(thread1, NULL);
if (error)
fprintf(stderr, "Error in pthread_join(): %s\n",
strerror(error));
error = pthread_join(thread2, NULL);
if (error)
fprintf(stderr, "Error in pthread_join(): %s\n",
strerror(error));
return 0;
}