DLLのクラッシュをデバッグしようとしています。サーバーマネージャーに読み込まれ、Active Directory証明書サービスを構成しようとするとクラッシュします(DLLは登録済みプロバイダーです)。クラッシュがアクセス違反で、私がpdbファイルを持っていることを知っています。これをデバッグする方法を知りません。私はthisとthisのようなページを読んだ(助けにはならなかった)。私は8000000のように見えるロードされたアドレスを、取得するためにLMを使用して(windbgのを使用して情報を収集しようとした:DLLのデバッグクラッシュ
"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe" -z myKSP.dll
その後
0:000> lm
start end module name
00000001`80000000 00000001`8005e000 ...
その後、イベントビューアは私に語ったことから:
Exception code: 0xc0000005
Fault offset: 0x000000000002a601
私はそれを表示しようとした:
0:000> ln 80000000+2a601
Browse module
Set bu breakpoint
何も表示されません。
私はVS2015を持っていますので、私はserververmanager.exeプロセスにアタッチしようとしました。次に、Tools-> Options-> Debugging-> Symbolsでシンボルを読み込み、パスを指定しようとしましたが、ブレークポイントを設定すると常にシンボルがロードされません。以前のシンボルウィンドウでは、たくさんのものをダウンロードしたキャッシュフォルダを設定しましたが、何もロードされていないようです。
明らかに、ツールを正しく使用していません。 DLLをデバッグする方法、リリースモードでコンパイルする方法、PDBを使用する方法、ServerManager.exeでロードする方法、または生成するサブプロセスをロードする方法)
Visual Studioを添付して、Win32例外がスローされたときに破損するように設定します。デバッガがプロセスを一時停止すると、後でシンボルを扱うことができます。 – IInspectable
処理が中断しました...今はどうしたらいいですか?まだシンボルを読み込まない、私は "モジュール"ウィンドウと表示されているスタックトレースを持っていないようだ、私のDLLの近くにどこにもありません。 – Jon
Windowsに実行ファイルのクラッシュダンプファイルを作成し、クラッシュするまで実行してからwindbg.exeを使用してファイルを開くように要求することができます。 – alexm