Missverständnis zwischen gdb und glibc: [Thread debugging using libthread_db enabled]



  • Hallo
    Ich habe etliche Mailinglisten durchgesehen aber nirgends stand ein Hinweis wie der Konflikt zu bereinigen ist.

    Starte ich in einer gdb Session das ausführbare File mit run erhalte ich folgende Meldung.

    [Thread debugging using libthread_db enabled]
    Error while reading shared library symbols:
    Cannot find new threads: generic error
    

    Bei allen weiteren Schritten (s, n, etc.) erscheint dieselbe Meldung. Das Debuggen ist somit unmöglich. (Selbiges passiert beim Debuggen über die Oberfläche mit dem DDD.)

    Das Programm selbst enthält keine Threads. Es greift neben den Standard Libraries auf das GTK Framework und der GLib zu. Der Konflikt muss hier zwischen den Versionen von gdb und der glibc liegen.

    Wäre schön, wenn schon jemand über dieses Problem steht und hier die entscheidenden Hinweise geben kann. Alle Anderen weiter proggen.

    Allgemeine System-Infos:
    Linux 2.6.27.23-0.1-pae #1 SMP 2009-05-26 17:02:05 -0400 i686 i686 i386 GNU/Linux
    gdb 6.8.50
    gcc 4.3-34
    glibc-2.9-2.11.1 - Standard Shared Libraries (from the GNU C Library)

    Es grüßt die Raupe vorm Wahnsinn.



  • Hallo,

    auch ich habe dieses Problem.

    Bei mir tritt es auf, wenn ich mit dlopen() ein Modul lade, welches zusätzlich mit den "normalen" Bibliotheken noch mit libmysqlpp und libmysqlclient gelinkt wurde.

    Weder im Hauptprogramm noch in diesem Modul benutze ich Threads. Ich vermute, dass die libmysqlpp mit threading-support compiled wurde. (Ubuntu 9)

    Aus irgendeinem Grund 'denkt' gdb beim dlopen(), dass ein neuer Thread gestartet wird. (vielleicht tuts das auch wirklich? ich hab keinen Plan ...)

    Ich kann den Programmablauf im gdb nach dieser Meldung normal fortsetzen.

    Irgendwelche Tipps? Das nervt gewaltig.


Anmelden zum Antworten