Debuggen von Kerndateien mit gemischten Distributionen
Wenn Sie auf Kerndateien stoßen, die auf dem Linux-System eines Kunden generiert wurden und sich von der Entwicklungsumgebung unterscheiden, wird der Stack-Trace angezeigt ist aufgrund möglicher Nichtübereinstimmungen in den Bibliotheksadressen möglicherweise nicht aussagekräftig.
Stack Trace wird aufgelöst Mehrdeutigkeit
Um dieses Problem zu beheben, besorgen Sie sich die von der ausführbaren Datei verwendeten gemeinsam genutzten Bibliotheken vom System des Kunden. Komprimieren Sie sie in einen Tarball und extrahieren Sie sie in ein temporäres Verzeichnis auf dem Entwicklungssystem. Legen Sie in GDB das solib-absolute-prefix so fest, dass es auf dieses Verzeichnis verweist. Dadurch kann GDB die richtigen Bibliotheksversionen laden und einen genauen Stack-Trace erstellen.
Best Practices für das Debuggen
Um das Debuggen zu vereinfachen, erstellen Sie eine Debug-Binärdatei mit -g -O2-Optimierungsflags. Verwenden Sie „strip -g“, um Debug-Symbole aus der endgültigen Binärdatei zu entfernen, die an Kunden verteilt wird. Wenn eine Kerndatei empfangen wird, verwenden Sie die Debug-Binärdatei mit den vollständigen Symbolinformationen, um das Debuggen zu erleichtern.
Alternative Debugging-Ressourcen für Linux und Solaris
Das obige ist der detaillierte Inhalt vonWie kann ich Kerndateien debuggen, die auf verschiedenen Linux-Distributionen generiert wurden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!