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:

  1. OS: Gentoo Linux
  2. Aktivieren ELF core-dumps aktiviert ist, in den Laufenden kernel.
  3. Die Anwendung ist ein text-editor, geschrieben in gtk+

Antwort:
Ich fand es zwei Möglichkeiten:

  1. find /-name "core" -ls
  2. 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 eine core - 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).
InformationsquelleAutor nomadicME | 2012-06-03
Schreibe einen Kommentar