Linuxで便利なバックトレースを作成する方法

症状

Linux で作業しているときに、BricsCAD が突然クラッシュして消えてしまうことがあります。

ターミナルから BricsCAD を実行すると、短いエラー メッセージが表示されます (多くの場合、 「セグメンテーション エラー」になります)。ただし、クラッシュが発生する理由に関する役立つ情報は提供されません。

BricsCAD V24.2以降では、クラッシュ(セグメンテーション違反)が発生した場合、アプリケーションはクラッシュレポート.txtバックトレースを含む診断情報が含まれます。

この場合、バックトレース (スタック トレース) は、テクニカル サポート チームがクラッシュの原因を特定するのに非常に役立ちます。クラッシュの瞬間のネストされた関数呼び出しの現在のスタックが表示されます。

原因

BricsCAD がクラッシュしますが、クラッシュに関する有用な情報が表示されません。

ソリューション

バックトレースを取得するには、次の手順に従います。
  1. ターミナル インスタンスで、次のコマンドを使用して gdb 内で BricsCAD を実行します。
    LD_LIBRARY_PATH=/opt/bricsys/bricscad/vXX GDK_BACKEND=x11 QT_QPA_PLATFORM=xcb gdb 
    /opt/bricsys/bricscad/vXX/bricscad
    注: vXXはBricsCADのメジャーバージョン番号に置き換えられます。例:V26
  2. ウィンドウで「run」と入力して入力プログラムを起動します。
  3. クラッシュを再現します。クラッシュ後、BricsCAD ウィンドウは単にフリーズしますが、消えることはありません。
  4. ターミナルに戻り、 btと入力して入力バックトレースを取得します。

    btが機能しない場合は、BricsCAD がクラッシュしているのではなく、ハングしている可能性があります。その場合は、 Ctrl+C BricsCAD を一時停止すると、 bt が機能するはずです。

    btと同様に、gdb disasコマンドを実行し、出力を同じテキスト ファイルに貼り付けます。

    完全なバックトレースは画面に収まらない可能性があります。その場合、最後の行は次のようになります。
    ---続行するには< return >、終了するには q< return >と入力してください---
  5. バックトレースの関連部分をテキスト エディターにコピーしてサポート リクエストに添付するか、サポート リクエストに直接投稿します。
  6. qと入力して押す入力ターミナルウィンドウに入力します。
  7. yと入力して押す入力確認します。