Heim  >  Artikel  >  System-Tutorial  >  Verwenden Sie coredumpctl, um Fehler zu finden und zu beheben

Verwenden Sie coredumpctl, um Fehler zu finden und zu beheben

PHPz
PHPznach vorne
2024-02-16 09:45:181228Durchsuche

Eine bedauerliche Tatsache ist, dass jede Software Fehler aufweist und einige Fehler zu Systemabstürzen führen können. Wenn es auftritt, hinterlässt es häufig eine Datendatei auf der Festplatte, die als „Core Dump“ bezeichnet wird. Diese Datei enthält relevante Daten darüber, wann Ihr System abgestürzt ist, und kann dabei helfen, die Ursache des Absturzes zu ermitteln. Entwickler fragen häufig nach Daten in Form eines „Tracebacks“, das den Befehlsfluss zeigt, der zum Absturz geführt hat. Entwickler können damit Fehler beheben und das System verbessern. Wenn Ihr System abstürzt, können Sie hier ganz einfach einen Traceback erstellen.
使用 coredumpctl 查找并处理 BUG

Beginnen Sie mit der Verwendung von coredumpctl

Die meisten Fedora-Systeme verwenden das Automatic Error Reporting Tool (ABRT) [1], um Absturzdateien automatisch zu erfassen und Fehler zu protokollieren. Diese Methode kann jedoch hilfreich sein, wenn Sie den Dienst deaktiviert oder das Paket entfernt haben.

Wenn es zu Systemabstürzen kommt, stellen Sie zunächst sicher, dass Sie die neueste Software verwenden. Updates enthalten häufig Korrekturen für Fehler, die nachweislich zu schwerwiegenden Fehlern und Abstürzen führen. Versuchen Sie nach der Aktualisierung, die Situation zu reproduzieren, die den Fehler verursacht hat.

Wenn der Absturz immer noch auftritt oder Sie bereits die neueste Software verwenden, gibt es das nützliche Tool coredumpctl. Dieses Programm hilft, Abstürze zu finden und zu beheben. Um eine Liste aller Core-Dumps auf Ihrem System anzuzeigen, führen Sie den folgenden Befehl aus:

coredumpctl list

Seien Sie nicht überrascht, wenn Sie eine längere Liste als erwartet sehen. Manchmal stürzen Systemkomponenten still im Hintergrund ab und erholen sich von selbst. Eine einfache Möglichkeit, die heutigen Dumps schnell zu finden, ist die Verwendung der Option -seit:

coredumpctl list --since=today

Die Spalte „PID“ enthält die Prozess-ID, die zur Identifizierung des Dumps verwendet wird. Bitte notieren Sie sich diese Nummer, da Sie sie später benötigen werden. Oder, wenn Sie sich nicht daran erinnern möchten, weisen Sie es einer Variablen zu, indem Sie Folgendes verwenden:

MYPID=<PID>

Um Informationen zu Core-Dumps anzuzeigen, verwenden Sie diesen Befehl (verwenden Sie die Variable $MYPID oder ersetzen Sie die PID-Nummer):

coredumpctl info $MYPID
Debuginfo-Paket installieren

Debug-Symbol-Escapes zwischen Daten in Core-Dumps und Anweisungen im Originalcode. Diese symbolischen Daten können recht groß sein. Im Gegensatz zu den Paketen, die die meisten Benutzer auf Fedora-Systemen ausführen, werden Symbole als „debuginfo“-Paket installiert. Um festzustellen, welche Debuginfo-Pakete Sie installieren müssen, führen Sie zunächst den folgenden Befehl aus:

coredumpctl gdb $MYPID

Dadurch werden möglicherweise viele Informationen auf dem Bildschirm angezeigt. In der letzten Zeile werden Sie möglicherweise aufgefordert, dnf zu verwenden, um weitere Debuginfo-Pakete zu installieren. Führen Sie diesen Befehl mit sudo [2] aus, um Folgendes zu installieren:

sudo dnf debuginfo-install <packages...>

Dann versuchen Sie es erneut mit dem Befehl coredumpctl gdb $MYPID. Möglicherweise müssen Sie dies wiederholt tun, da andere Symbole im Traceback erweitert werden.

Traceback erfassen

Führen Sie den folgenden Befehl im Debugger aus, um Informationen zu protokollieren:

set logging file mybacktrace.txt
set logging on

Vielleicht hilft Ihnen das Deaktivieren der Paginierung. Bei langen Tracebacks spart das Zeit.

set pagination off

Führen Sie nun den Traceback aus:

thread apply all bt full

Jetzt können Sie quit eingeben, um den Debugger zu beenden. mybacktrace.txt enthält Trace-Informationen, die einem Fehler oder Problem zugeordnet werden können. Wenn Sie mit jemandem in Echtzeit zusammenarbeiten, können Sie Text auch in den Pastebin hochladen. So oder so können Sie Entwicklern jetzt mehr Hilfe bei der Lösung von Problemen bieten.


Das obige ist der detaillierte Inhalt vonVerwenden Sie coredumpctl, um Fehler zu finden und zu beheben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:linuxprobe.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen