エラーメッセージなどを表示せずにアプリが消えてしまうバグがどこかにあります。アプリが画面から消え、タスク マネージャーに表示されなくなります。
このアプリは C++Builder アプリ (CBuilder2007) であり、このエラーをキャッチするために考えられるすべてのことを試しました。非常にめったに発生しません。私のマシンでは一度もクラッシュしたことがなく、オフィスにあるテスト マシンでは 1 回だけです。私たちの顧客の1人では、それがもう少し頻繁に発生しますが、それを実現する方法や、それが発生する状況を見つける方法が見つかりません. 重いマルチスレッドアプリです。
このアプリで madExcept を有効にしましたが、何もキャッチしません。set_terminate
およびset_unexpected
RTL ルーチンを使用してハンドラーを追加しましたが、うまくいきませんでした。
私が持っている唯一の情報は、メインアプリからリターンコードを取得するために行った「ローダーアプリ」ラッパーからのものです。コードで終了しC0000005
ます。これは、アクセス違反が発生したことを意味すると思います。奇妙なことに、前述のように、Windows エラー ボックスなどもありません。
質問は次のとおりです。これをキャッチしようとするアイデアはありますか? これがどこで起こっているのか手がかりさえ持っていないので (私はアプリの周りにたくさんのログを記録していますが、アプリがクラッシュする前の「トレイル」はどこにもつながっていません)set_terminate
とset_unexpected
ルーチンに関する私の考えは取得することでしたエラーが生成された場所を確認するためのスタック トレースですが、これまでのところ、これらのルーチンはまったく呼び出されていません (少なくとも、私のオフィスでこれが発生したのは 1 回だけです)。
前もって感謝します
[2009 年 9 月 22 日更新] AddVectoredHandlerException を使用して、クラッシュからコールスタックを取得できたので、バグの特定と修正を開始できます。ありがとう!!!