gcc Debuggen, Segmentation Fault (core dumped), aber kein Kern
Es verwendet werden, ich würde Segmentation Fault
keinen Kern, dann fügte ich hinzu -ggdb auf den Befehl kompilieren und ausgeführt wurde dieser Befehl in die bash vor der Ausführung gcc:
ulimit -c unlimited
Alles war gut für eine Weile (ich habe einen core), aber jetzt bekomme ich Segmentation Fault (core dumped)
aber keine core in das Verzeichnis, in dem gcc-Befehl ausgegeben wurde? Könnte es sein, woanders hingehen? Was kann ich sonst noch versuchen?
Ein wenig zusätzliche info:
- OS: Gentoo Linux
- Aktivieren ELF core-dumps aktiviert ist, in den Laufenden kernel.
- Die Anwendung ist ein text-editor, geschrieben in gtk+
Antwort:
Ich fand es zwei Möglichkeiten:
find /-name "core" -ls
-
Als torek vorgeschlagen:
$ strace ./ausführbare Datei > output.txt 2>&1
$ grep chdir output.txt
- Der core dump wird in den Laufenden Prozess ist das aktuelle Verzeichnis. Dauert der Prozess zu tun
chdir()
überhaupt? Wenn ja, gehen Sie, wo es geht. - Leffler, vielen Dank für die Anregung. Die Anwendung ist ein text-editor, geschrieben in gtk+. Es gibt keine chdir() in der Quelle, die ich geschrieben habe. Nur um auf der sicheren Seite (falls es sowas in der gtk+ - source -) ich habe es mit nur zwei tabs öffnen, beide Dateien in das gleiche Verzeichnis (gleich wie die ausführbare Datei), immer noch keinen Kern.
- Die
core
(5) manual-Seite wird erklärt, wie Sie kontrollieren können, ob und Wann einecore
- Datei generiert. Vielleicht ist der Wert in/proc/sys/kernel/core_pattern
Punkte in ein anderes Verzeichnis (mein sysadmin setzen uns bis zu generieren, die eindeutig benannte Dateien in/tmp
).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als @JonathanLeffler festgestellt, dass der core-dump geht in das aktuelle Verzeichnis.
Können Sie
strace
zu sehen, wenn der Prozess gemacht hat, chdir(). Leiderstrace
nicht zeigen, wo die core-dump-sich ging, aber:gibt es nun eine core.pid Datei vorhanden.