Cómo crear un backtrace útil en Linux

Síntomas

Cuando se trabaja en Linux, a veces puede suceder que BricsCAD se bloquee y desaparezca repentinamente.

Al ejecutar BricsCAD desde la terminal, se imprime un breve mensaje de error (a menudo será "Fallo de segmentación"), pero esto no proporciona información útil sobre por qué ocurre el bloqueo.

A partir de BricsCAD V24.2, en caso de un bloqueo (falla de segmentación), la aplicación genera un crash_report.txt que contiene información de diagnóstico, incluido el seguimiento inverso.

En este caso, un backtrace (rastreo de pila) se vuelve muy útil para que el equipo de soporte técnico identifique la causa del bloqueo. Muestra la pila actual de llamadas a funciones anidadas en el momento del bloqueo.

Causa

BricsCAD se bloquea sin información útil sobre el bloqueo.

Soluciones

Para obtener el backtrace, siga estos pasos:
  1. En una instancia de Terminal, ejecute BricsCAD dentro de gdb con el siguiente comando:
    LD_LIBRARY_PATH=/opt/bricsys/bricscad/vXX GDK_BACKEND=x11 QT_QPA_PLATFORM=xcb gdb 
    /opt/bricsys/bricscad/vXX/bricscad
    Nota: vXX será reemplazado con el número de versión principal de BricsCAD, por ejemplo V24.
  2. En la ventana, escriba ejecutar y presione enter para iniciar el programa.
  3. Reproducir el choque. Después de fallar, la ventana de BricsCAD simplemente se congela, pero no desaparece.
  4. Vuelva a la terminal, escriba bt y pulse enter para obtener un rastreo de errores.

    Si bt no funciona, significa que BricsCAD se podría estar colgando en lugar de bloquearse. En ese caso, presione CTRL + C para pausar BricsCAD, entonces bt debería funcionar.

    De manera similar a bt, ejecute el comando gdb disas y pegue la salida en el mismo archivo de texto.

    El backtrace completo podría no caber en la pantalla. En ese caso, la última línea dice así:
    ---Escriba  < return >  para continuar, o q < return > para salir---
  5. Copie la parte relevante del seguimiento en un editor de texto y adjúntelo a una solicitud de soporte, o publíquelo directamente en la solicitud de soporte.
  6. Escriba q y presione enter en la ventana terminal.
  7. Escriba y y pulse enter para confirmar.