0

次の問題があります。アプリケーションがコード 1 で終了します。libc の終了時にブレークポイントを設定して、この原因を知りたいのですが、その方法がわかりません。私は MSVC 2012 を使用しています。

4

1 に答える 1

0

atexit()小さなユーティリティ関数またはグローバルのデストラクタを使用します。ただし、問題は、終了時に、終了の原因となったもののスタックフレームがなくなっていることです。exit()また、プログラムはおそらくまったく呼び出さないことに注意してくださいTerminateProcess()。テキストに「exited with」と表示されているという事実は、exit()関数が呼び出されたことを意味するものではなく、から戻っmain()ても同じ効果があります。

私のアドバイスは、デバッガーでそれをステップ実行して、どのコードがプログラムを終了させるかを見つけることです。これにより、問題にすばやく取り掛かることができます。また、キャッチされていない例外など、異常なことがないかデバッグ出力を確認してください。「最初のチャンスの例外」メッセージは、例外がキャッチされた場合でも書き込まれるため、誤解を招くことに注意してください。それでも、そう思われる場合は、例外がスローされた場所で停止するように IDE を構成できます。これにより、場合によってはその場所を見つけやすくなります。

于 2013-04-25T19:57:26.457 に答える