まず第一に、私の質問を見て助けてくれてありがとう。ここの多くの質問者がほとんどまたはまったく感謝を示さないことに気づきましたが、私はここの助けとコミュニティに心から感謝しています:)
ソースコードがないアプリケーション(ビデオゲーム)用にC ++プラグイン(数百のソースファイルで妥協)を作成しました。つまり、プラグインのソースコードしかなく、ゲームはありません。さて、私のプラグインの何千行ものどこかで、何かがゲームエンジンをスローさせ(おそらくアクセス違反)、どこにあるのかわかりません。デバッガーが破損するまでに、スタックが破損し、取得するのはソースがないDLLの16進アドレスだけです(ただし、例外は確実にDLLで発生します)。私はすべてを試しました...例外が発生する場所を見つけることができないようです。デバッガーが「メモリ再配置」関数(プラグインでは使用したことがない)を指す場合もあれば、エンジンのGameFrame()を指す場合もあります。
私は実質的にすべてを試しました...WinDbgやMicrosoftApplicationVerifierなどの他のデバッガーの使用方法を見つけるために何時間もグーグルで検索しました。デバッガーが指している場所のいずれか、または両方をコメントアウトしようとしましたが、それでもクラッシュします。OUTPUT("The name of the last executed function is: %s", __FUNCTION__)
最後の関数を丹念にキャッチしたいので、アプリケーションのすべての関数に挿入しましたが、どのような種類のI / Oでも、何らかの理由で例外が発生しないようです...そして10分間のデバッグと、最後に実行されたランダムなクラッシュが発生します働き。
このアクセス違反がどこで発生しているのか、または一時オブジェクトが削除されてこれらの不正なポインターが発生しているのかはわかりませんが(使用する前にすべてのポインターをチェックします)、くそー、ここで限界に達しています。
では、不可能なことをどのようにデバッグするのでしょうか...安っぽいデバッガーの呼び出しスタックでランダムにクラッシュするのでしょうか?あなたの患者と親切な助けを事前に感謝します!