Como criar um backtrace útil no Linux

Sintomas

Ao trabalhar no Linux, às vezes pode acontecer que o BricsCAD falhe repentinamente e desapareça.

Ao executar o BricsCAD a partir do Terminal, uma curta mensagem de erro é impressa (geralmente será "Falha de segmentação"), mas isso não fornece informações úteis sobre o motivo da falha.

Nesse caso, um backtrace (stack trace) torna-se muito útil para a equipe de suporte técnico identificar a causa do bloqueio. Este mostra a pilha atual de chamadas de função aninhadas no momento da falha.

Causa

BricsCAD falha sem informações úteis sobre o travamento.

Solução

Para obter o backtrace, siga estas etapas:
  1. Em uma instância do Terminal, execute o BricsCAD dentro do gdb com o seguinte comando:
    LD_LIBRARY_PATH=/opt/bricsys/bricscad/vXX GDK_BACKEND=x11 QT_QPA_PLATFORM=xcb gdb 
    /opt/bricsys/bricscad/vXX/bricscad
    Note: Substitua 'vXX' pelo número da versão principal do BricsCAD, por exemplo V23.
  2. Na janela, digite run e pressione Enter para iniciar o programa.
  3. Reproduza o acidente. Depois de travar, a janela do BricsCAD simplesmente congela, mas não desaparece.
  4. Volte para o Terminal, digite bt e pressione Enter para obter um backtrace.

    Se bt não funcionar, o BricsCAD pode estar travando em vez de falhar. Nesse caso, pressione CTRL+C para pausar o BricsCAD, então bt deve funcionar.

    O backtrace completo pode não caber na tela. Nesse caso, a última linha fica assim:
    ---Digite < return > para continuar, ou q < return > para sair---
  5. Copie a parte relevante do backtrace em um editor de texto e anexe-o a um pedido de suporte ou poste-o diretamente no Pedido de Suporte.
  6. Digite q e pressione Enter na janela Terminal.
  7. Digite y e pressione Enter para confirmar.