Come creare una backtrace utile su Linux

Sintomi

Quando si lavora su Linux, a volte può capitare che BricsCAD si blocca e scompare.

Quando si esegue BricsCAD dal Terminale, viene stampato un breve messaggio di errore (spesso sarà "Segmentation fault"), ma ciò non fornisce informazioni utili sul motivo dell'arresto anomalo."

In questo caso, una backtrace (traccia dello stack) diventa molto utile per il team del supporto tecnico per identificare la causa del crash. Quest'ultimo mostra lo stack corrente di chiamate di funzione nidificata al momento dell'arresto anomalo.

Causa

BricsCAD si blocca senza fornire informazioni utili sul crash.

Soluzione

Per ottenere la backtrace, attenersi alla seguente procedura:
  1. In un'istanza del Terminale, eseguire BricsCAD all'interno di gdb con il seguente comando:
    LD_LIBRARY_PATH=/opt/bricsys/bricscad/vXX GDK_BACKEND=x11 QT_QPA_PLATFORM=xcb gdb 
    /opt/bricsys/bricscad/vXX/bricscad
    Note: vXX dovrà esser sostituito con il numero di versione principale di BricsCAD, ad esempio V24.
  2. Nella finestra, digitare run e premere Invio per avviare il programma.
  3. Riprodurre il crash. Dopo l'arresto anomalo, la finestra BricsCAD si blocca semplicemente, ma non scompare.
  4. Tornare al Terminale, digitate bt e premete Invio per ottenere una backtrace.

    Se bt non funziona, è possibile che BricsCAD si blocchi piuttosto che andare in crash. In questo caso, premere CTRL+C per mettere in pausa BricsCAD, quindi bt dovrebbe funzionare.

    La backtrace completa potrebbe non essere adattata allo schermo. In questo caso, l'ultima riga è simile a questa:
    ---Digitare  < return >  to continue, or q < return > to quit---
  5. Copiare la parte rilevante della backtrace in un editor di testo e allegarla a una richiesta di supporto, oppure inviarla direttamente alla richiesta di supporto.
  6. Digitare q e premere Invio nella finestra del Terminale.
  7. Digitare y e premere Invio per confermare.