Seg-fault nach Datenbankzugriff
Hallo Liste, ich schreibe gerade ein KDE-Programm, das via unixODBC-Treiber auf eine Datenbank zugreift (z.Z. PostgreSQL). Nun habe ich festgestellt, daß das Programm beim Beenden immer mit einem Segfault abbricht. Nach einiger Suche habe ich festgestellt, daß der Abbruch wirklich "ganz am Ende" erfolgt, Abspeichern von Konfigurationsdateien, ... klappt also noch korrekt. Wird das Programm mit hohem Debug-Level kompiliert, so erhalte ich von gdb die Meldung: ============ Program received signal SIGSEGV, Segmentation fault. pthread_exit_process (retcode=0, arg=0x1) at pthread.c:315 pthread.c:315: No such file or directory. ============ Die Angabe, das pthread.c nicht gefunden wurde, entspricht der Wahrheit: Eine Datei mit dem Namen gibt es auf meinem System nicht! Hat jemand eine Idee, was hier schief läuft??? Bin für jede Hilfe dankbar, Heiner -- Heiner Lamprecht Philosophenweg 79 D - 72076 Tuebingen email: heiner@kijumfo.de http://www.kijumfo.de GnuKontor: http://agenda21.ggi.uni-tuebingen.de/heiner/gk/ KFLog: http://agenda21.ggi.uni-tuebingen.de/heiner/kflog/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Heiner Lamprecht wrote on Tue, Feb 08, 2000 at 23:05 +0100:
Hallo Liste,
pthread.c:315: No such file or directory.
Die Angabe, das pthread.c nicht gefunden wurde, entspricht der Wahrheit: Eine Datei mit dem Namen gibt es auf meinem System nicht!
IIRC gehört die zu "linuxthreads" für die glibc. Wenn Du sie wirklich haben möchtest ;) Ich weiß nicht, wieviel es bringt, nur die Quellen zu holen... Du mußt ja beim Debuggen die exakte Version haben etc. Ne glibc selbst zu machen, ist so trivial auch nicht... Muß auch nicht daran liegen, vielleicht stribt ein Thread zu früh oder sowas... Notfalls mußt Du also glibc holen, linuxthreads dazu machen (wenn Du damit was sinnvollen machten möchtest, brauchst Du IIRC noch mehr Zusätze), alles kompilieren, dann diese libs zu Deinem Programm linken, und dann die Mega gdb Session... Vielleicht fragst Du vorher besser nochmal inner passenden Newsgroup... oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel. --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Steffen,
IIRC gehört die zu "linuxthreads" für die glibc. Wenn Du sie wirklich haben möchtest ;)
Ich weiß nicht, wieviel es bringt, nur die Quellen zu holen... Du mußt ja beim Debuggen die exakte Version haben etc. Ne glibc selbst zu machen, ist so trivial auch nicht... Muß auch nicht daran liegen, vielleicht stribt ein Thread zu früh oder sowas...
Notfalls mußt Du also glibc holen, linuxthreads dazu machen (wenn Du damit was sinnvollen machten möchtest, brauchst Du IIRC noch mehr Zusätze), alles kompilieren, dann diese libs zu Deinem Programm linken, und dann die Mega gdb Session... Vielleicht fragst Du vorher besser nochmal inner passenden Newsgroup... Danke für die Hinweise. Mittlerweile habe ich die Ursache des Seg-faults ziemlich genau eingekreist. Es wird am Ende versucht, eine Variable zu löschen, die schon vorher gelöscht wurde. Mich wundert nur, wie diese Fehlermeldung eigentlich entstand. Den Datenbanktreiber habe ich auf meinem System kompiliert. Da war also nichts mit linuxthreads zu finden. Der Debugger und die beteiligten Bibliotheken sind die normalen binary-Versionen von SuSE. Kann es sein, daß der Debugger einfach eine "falsche" Meldung ausgibt?
Heiner P.S.: Außerdem habe ich festgestellt, daß ich, wenn ich das Programm vom Debugger starte, nicht auf die Datenbank zugreifen kann. Keinerlei Zugriffe werden ausgeführt, es gibt aber auch keine Meldung irgendeiner Art. Wieso unterdrückt der Debugger das? -- Heiner Lamprecht Philosophenweg 79 D - 72076 Tuebingen email: heiner@kijumfo.de http://www.kijumfo.de GnuKontor: http://agenda21.ggi.uni-tuebingen.de/heiner/gk/ KFLog: http://agenda21.ggi.uni-tuebingen.de/heiner/kflog/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (2)
-
heiner@kijumfo.de
-
steffen@dett.de