Erstellen eines nützlichen Backtrace unter Linux

Symptome

Beim Arbeiten unter Linux kann es manchmal vorkommen, dass BricsCAD plötzlich abstürzt und verschwindet.

Beim Ausführen von BricsCAD über das Terminal wird eine kurze Fehlermeldung ausgegeben (oft lautet sie "Segmentierungsfehler"), die jedoch keine hilfreichen Informationen darüber liefert, warum der Absturz auftritt.

In diesem Fall ist ein Backtrace (Stack-Trace) für das Support-Team sehr nützlich, um die Ursache des Absturzes zu ermitteln. Es zeigt den aktuellen Stapel verschachtelter Funktionsaufrufe zum Zeitpunkt des Absturzes.

Ursache

BricsCAD stürzt ohne nützliche Informationen zum Absturz ab.

Lösung

Um den Backtrace zu erhalten, führen Sie die folgenden Schritte aus:
  1. Führen Sie BricsCAD in einer Terminal-Instanz in gdb mit dem folgenden Befehl aus:
    LD_LIBRARY_PATH=/opt/bricsys/bricscad/vXX GDK_BACKEND=x11 QT_QPA_PLATFORM=xcb gdb 
    /opt/bricsys/bricscad/vXX/bricscad
    Note: vXX wird durch die Hauptversionsnummer von BricsCAD ersetzt, zum Beispiel V24.
  2. Geben Sie im Fenster run ein und drücken Sie die Eingabetaste, um das Programm zu starten.
  3. Reproduzieren Sie den Absturz. Nach dem Absturz friert das BricsCAD-Fenster einfach ein, verschwindet aber nicht.
  4. Wechseln Sie zurück zum Terminal, geben Sie bt ein und drücken Sie die Eingabetaste um ein Backtrace zu erhalten.

    Wenn bt nicht funktioniert, bedeutet das, dass BricsCAD möglicherweise hängen bleibt und nicht abstürzt. Drücken Sie in diesem Fall STRG+C um BricsCAD anzuhalten, dann sollte bt funktionieren.

    Der vollständige Backtrace passt möglicherweise nicht auf den Bildschirm. In diesem Fall lautet die letzte Zeile so:
    ---Geben Sie < return > ein, um fortzufahren, oder q < return >, um den Vorgang zu beenden---
  5. Kopieren Sie den relevanten Teil des Backtrace in einen Texteditor und hängen Sie ihn an eine Supportanfrage an oder posten Sie ihn direkt in der Supportanfrage.
  6. Geben Sie q ein und drücken Sie die Eingabetaste in das Terminalfenster.
  7. Geben Sie y ein und drücken Sie die Eingabetaste.