Debug Informationen nach Crash (Bug-Trace)

From The Document Foundation Wiki
< QA
Jump to: navigation, search

Debug Informationen

Für den Fall, dass LibreOffice abstürzt (crashed) oder hängen bleibt, kann es sinnvoll sein, sogenannte Debug Informationen zu erzeugen und diese dem Bug Report hinzuzufügen. Dies sollte allerdings nur auf Anfrage eines Entwicklers oder einer QA-Person erfolgen. Für jedes Betriebssystem ist das Vorgehen unterschiedlich.

Ob die folgenden Beschreibungen noch aktuell sind, ist nicht geprüft worden. Gegebenenfalls bitte die englischen Beschreibungen benutzen. Dies gilt auch, wenn Dein Betriebssystem hier nicht aufgeführt ist.

GNU/Linux: Wie man ein strace log erstellt

In den meisten Fällen ist es ausreichend, das Programm auf folgende Weise zu starten:

strace -o /tmp/strace.log -f -tt -s 512 libreoffice

Dann führt man die Schritte aus, die den Fehler erzeugen und verlässt das Programm. Das Kommando libreoffice muss evtl. durch /opt/libreoffice/program/soffice ersetzt werden, insbesondere wenn keine Desktop-Integration installiert wurde.

Bitte die Log-Datei komprimieren, bevor sie an den BugReport angehängt wird:

bzip2 /tmp/strace.log

Wenn das 32-Bit LibreOffice auf einem 64-Bit System läuft, muss das Paket strace-32bit installiert und das 32-Bit Binärprogramm direkt gestartet werden:

cd /opt/libreoffice/program
strace32 -o /tmp/strace.log -f -tt -s 512 ./soffice.bin

GNU/Linux: Wie man ein backtrace erstellt

Der backtrace ist nützlich wenn die Applikation abstürzt oder einfriert. Die Schritte sind Folgende:

  1. Installiere die libreoffice*-debuginfo Pakete (falls verfügbar, und/oder von der Linux Distribution).
  2. Starte den debugger mit dem echten binary und logge die Ausgabe:
    cd /opt/libreoffice/program
    
    gdb ./soffice.bin 2>&1 | tee /tmp/gdb.log
    
  3. Starte die Applikation innerhalb des Debuggers:
    run <options>
    
  4. Führe die Schritte bis zum Absturz oder Einfrieren der Applikation aus. Wenn das Programm einfriert, STRG+c drücken um zur gdb-Kommandozeile zurückzukehren.
  5. Backtrace ausgeben:
    backtrace
    
  6. Backtrace aller threads ausgeben:
    thread apply all bt
    
  7. Debugger verlassen
    quit
    
  8. Die vollständige gdb.log an die Fehlermeldung anhängen (nach Komprimierung siehe oben).


GNU/Linux: Wie man ein valgrind-Log erstellt

Die valgrind-Logdatei ist nützlich, wenn das Programm abstürzt oder einfriert und das backtrace nicht ausreicht. Die Schritte sind Folgende:

  1. Installiere die libreoffice*-debuginfo Pakete (falls verfügbar, und/oder von der Linux Distribution).
  2. Starte den Debugger mit dem echten binary und logge die Ausgabe:
    cd /opt/libreoffice/program
    
    valgrind --tool=memcheck --num-callers=128 --trace-children=yes ./soffice.bin 2>&1 | tee /tmp/valgrind.log
    
  3. Führe die Schritte bis zum Absturz oder Einfrieren der Applikation aus. Beachte, dass dies normalerweise alles gut mit valgrind funktioniert, weil es hilft, den Speicher sauber zu halten. Trotzdem sollte es die Gefährdung erkennen und eine entsprechende Information in die Logdatei schreiben. Beachte, dass valgrind ständig allerlei Warnungen ausgibt. Es müssen wirklich die Schritte ausgeführt werden, die normalerweise zum Fehler führen, damit die richtigen Daten in die Logfdatei ausgegeben werden.
  4. Verlasse LibreOffice.
  5. Bitte komprimiere valgring.log, wenn die Datei größer als 10kB ist.
    bzip2 /tmp/valgrind.log
    
  6. Hänge die Logdatei an die Fehlermeldung an.