Comment créer un backtrace utile sous Linux

Symptômes - Bas

Lorsque vous travaillez sous Linux, il peut arriver que BricsCAD plante soudainement et disparaisse.

Lors de l'exécution de BricsCAD à partir du Terminal, un court message d'erreur s'affiche (souvent il s'agit de : « erreur de segmentation »), mais cela ne fournit pas d'information utile sur la raison du plantage.

Dans ce cas, un rapport des appels de procédure devient très utile pour l'équipe de support technique afin d'identifier la cause du plantage. Il montre la pile actuelle des appels de fonctions imbriquées au moment du plantage.

Cause

BricsCAD se bloque sans information utile sur le plantage.

Solution

Pour obtenir la trace arrière, procédez comme suit :
  1. Dans une instance de Terminal, lancez BricsCAD à l'intérieur de gdb avec la commande suivante :
    LD_LIBRARY_PATH=/opt/bricsys/bricscad/vXX GDK_BACKEND=x11 QT_QPA_PLATFORM=xcb gdb 
    /opt/bricsys/bricscad/vXX/bricscad
    Note: vXX sera remplacé par le numéro de la version majeure de BricsCAD, par exemple V24.
  2. Dans la fenêtre, entrez Exécuter et appuyez sur Entrée pour démarrer le programme.
  3. Reproduire le plantage. Après un plantage, la fenêtre de BricsCAD se fige, mais ne disparaît pas.
  4. Revenez au terminal, entrez bt et appuyez sur Entrée pour obtenir un tracé inverse.

    Si bt ne fonctionne pas, cela signifie que BricsCAD pourrait se geler plutôt que se fermer. Dans ce cas, appuyez sur CTRL+C pour mettre BricsCAD en pause, puis bt devrait fonctionner.

    Il se peut que le tracé complet ne tienne pas à l'écran. Dans ce cas, la dernière ligne se lit comme suit :
    ---Entrez < return > pour continuer, ou q < return > pour quitter---.
  5. Copiez la partie pertinente de la trace rétrospective dans un éditeur de texte et joignez-la à une demande de support, ou publiez-la directement dans la demande de support.
  6. Entrez q et appuyez sur Entrée dans la fenêtre Terminal.
  7. Entrez y et appuyez sur Entrée pour confirmer.