0

std::exception のソースを追跡しようとしています。basic_string::erase で、erase を呼び出しているすべての場所を try/catch で直接ラップしましたが、これらの catch ブロックのいずれにもヒットしていないので、それが必要です。別の basic_string メソッドから内部的に呼び出されている。例外は、私が使用しているコードの競合状態の結果であるように思われるため、再現するのは非常に困難です。この例外からスタック トレースを検出または取得する方法について何か考えはありますか? ところで、これは x86 Linux ボックスの C++ コードです。

ありがとうございました

4

1 に答える 1

4

試してみてください

(gdb) キャッチスロー

その後、gdb は例外がスローされるたびにブレークポイントをトリガーします。コールスタックが表示されます。

編集: この投稿は、例外をデバッグするための優れたトリックの束です: GDB: 特定の例外タイプがスローされたときにブレークする方法は?

于 2012-10-04T18:37:12.120 に答える