Wie erstellt man einen Core-Dump, auch wenn der Prozess normal läuft? [duplicate]

Lesezeit: 1 Minute

Benutzer-Avatar
xmllmx

Unter Linux wird beim Absturz eines Prozesses ein Core-Dump erstellt.

Ich möchte jedoch einen Core-Dump erstellen, wenn der Prozess nicht abstürzt, aber fehlerhaft aussieht. Ein Remote-Experte benötigt den Core-Dump zur Analyse.

Unter Windows können wir über den Task-Manager eine Dump-Datei eines Prozesses erstellen, und danach läuft der Prozess weiter.

Ist es unter Linux möglich?

Anruf gdbdann

attach pid
gcore

wo pid ist die Prozess-ID des betreffenden Prozesses.

Sie können verwenden gcore Dienstprogramm direkt von der Befehlszeile aus:

gcore [-o filename] pid

Übrigens, wenn Sie nur den Stack-Trace des Prozesses sehen möchten, gstack Dienstprogramm wird die Arbeit erledigen.

Beide Dienstprogramme werden mitgeliefert gdb.

Sie können dies in Ihrem Code tun mit:

if (fork() == 0) abort();

  • Das ist wahrscheinlich nicht die beste Lösung, aber Junge, ist es clever 🙂

    – Benjamin Grünbaum

    21. Dezember 2014 um 11:34 Uhr

Wenn Sie dies programmgesteuert tun möchten, versuchen Sie es mit google-coredumper. Ihr Beispiel:

#include <google/coredumper.h>
...
WriteCoreDump('core.myprogram');
/* Keep going, we generated a core file,
 * but we didn't crash.
 */

1225750cookie-checkWie erstellt man einen Core-Dump, auch wenn der Prozess normal läuft? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy