Wo sind Core Dumps auf dem Mac geschrieben?


75

Wenn ich unter Mac OS X SIGQUIT an mein C-Programm sende, wird es beendet, aber es gibt keine Core-Dump-Datei.

Müssen Sie Core Dumps unter Mac OS X manuell aktivieren (wie?) Oder werden sie an eine andere Stelle anstatt in das Arbeitsverzeichnis geschrieben?


2
Anstatt sich zu beschweren, könnten Sie es umformulieren - tatsächlich enthält Ihr Titel nicht einmal ein Verb. Ich würde Ihre Frage gerne positiv bewerten, da ich mich für das Thema interessiere. Dennoch denke ich, dass die Frage nicht der von SO geforderten Qualität entspricht. Ich habe sogar verwandte Fragen zu coredump stackoverflow.com/questions/2207233/… Übrigens müssen sich coredumps /coresin diesem Ordner befinden, aber schauen Sie in diesem Ordner über das Terminal und das Root-Konto nach.
Sorin

5
@ Sorin Ein Vorschlag ist kein Problem, Kleinlichkeit ist.
XYZ

1
@ Sorin FYI 'are' ist ein (Verknüpfungs-) Verb. Nicht, dass es hier wirklich wichtig wäre, aber wenn wir die Grammatik kritisieren, machen wir es richtig;) examples.yourdictionary.com/reference/examples/…
Rick Smith

Antworten:


96

Es scheint, dass sie standardmäßig unterdrückt werden. Laufen

$ ulimit -c unlimited

Aktiviert Core-Dumps für das aktuelle Terminal und wird in /coresas platziert core.PID. Wenn Sie eine neue Sitzung öffnen, wird sie wieder auf den Standardwert gesetzt.


30

Unter macOS werden Ihre Absturzabbilder automatisch von Crash Reporter verarbeitet .

Sie können Backtrace-Dateien finden, indem Sie Console ausführen und zum Abschnitt " Benutzerdiagnoseberichte " (unter "Diagnose- und Verwendungsinformationen") wechseln oder sie in suchen ~/Library/Logs/DiagnosticReports.

Sie können auch überprüfen, wo Speicherauszüge generiert werden, indem Sie die system.logDatei überwachen , z

tail -f /var/log/system.log | grep crash

Die eigentlichen Core- Dump-Dateien finden Sie in /cores.

Siehe auch:


13

Die Antwort oben,

ulimit -c unbegrenzt

funktioniert - aber stellen Sie sicher, dass Sie das in demselben Terminal ausführen, von dem aus Sie das Programm ausführen, das den Core ausgibt. Sie müssen zuerst den Befehl ulimit ausführen.


12

Außerdem muss das Verzeichnis / cores vorhanden sein und der Benutzer, der das Programm ausführt, muss über Schreibberechtigungen verfügen.


6
Ich habe es gerade aufgeräumt und 186 GB meines Speicherplatzes belegt!
Dragonborn

11

Standardmäßig sind bestimmte Verzeichnisse in Mac OSX ausgeblendet. Möglicherweise möchten Sie diese Funktion im Terminal aktivieren. Anschließend sollte der Core-Dump im Verzeichnis / in den Kernen sichtbar sein.

Standardeinstellungen schreiben com.apple.finder AppleShowAllFiles TRUE


3
Vielen Dank. Ich habe mit Terminal (ls-lah) gestöbert, aber das ist trotzdem ein nützlicher Tipp.
XYZ
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.