This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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;
}





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]