私はGDB(Cコード)でデバッグしています。問題は私がアプリケーションを実行し、クラッシュした場合、コントロールがmain()に戻ります(アプリケーションが再起動します)。したがって、どこが墜落したのかは分かりません。だから、私は各機能を踏み出すのに多くの時間を費やしています。gdbデバッグクラッシュロギングのヘルプ
クラッシュする前に最後の実行行を生成するログが有効になっているかどうかを知りたいと思います。これは単なる私の前提です。これを行うための他の簡単な方法があれば、私に教えてください。
また、gdbがログを生成する場合、パスはどこですか?
ありがとうございます。
"クラッシュ"を定義できますか?ハンドルされていないシグナル(例えばSIGSEGV)がある場合、GDBはそれを傍受して直ちに停止しますが、それは起こっていないように聞こえるので、別の方法で "クラッシュ"する必要があります –
GDBはcannedコマンドを処理できます。または、ログでスタックトレースを意味する場合は、http://tlug.up.ac.za/wiki/index.php/Obtaining_a_stack_trace_in_C_upon_SIGSEGVを参照してください。 SIGSEGVでスタックトレースを生成する方法を示します。あなたのクラッシュの原因となっている信号が分かっている場合は、SIGSEGVの代わりにその信号を受信したときにスタックトレースを生成してください。 – vpit3833
main()とアプリケーションの再起動の制御は、実際には同じではありません。main()の1行目で本当に再起動しているのですか?あるいは、関数呼び出しの後に復帰して戻りますか? – Cascabel