0

Visual Studio は必要に応じてプロジェクトを dll にコンパイルしますが、これらの dll を dumpbin で検査すると、pdb のエントリがありません。これがおそらく、これらの dll を読み込んでもデバッグできない理由です。実行時にそれらの pdb がロードされることはありません。VSにこれらのパスを書き込むにはどうすればよいですか?

ビジュアル スタジオ、C++。

編集: C++/一般/デ​​バッグ情報の形式は「プログラム データベース (/Zi)」に設定され、リンカ/デバッグ/デバッグ情報の生成は「はい (/DEBUG)」に設定されています。これは正しいと思います。

4

3 に答える 3

2

デバッグ ディレクトリにエントリが表示されない場合dumpbin /headersは、コンパイルおよびリンク時にデバッグ情報の生成を有効にしていない可能性があります。C++/General/Debug Information formatLinker/Debugging/Generate Debug Infoオプションを確認する必要があります。

これらのオプションが設定されている場合、Visual の出力ディレクトリにある dll と pdb が一致するかどうかを確認できます。Debugging Tools for Windows では、コマンドを使用しsymchk /v yourdll /s folder_containing_pdbて、デバッガー エンジンが pdb を検出できるかどうかを確認できます。dll にデバッグ情報が含まれていないかどうか (Visual Studio にオプションがない場合)、または pdb ファイルが完全でないかどうかを確認します。コマンドで Windbg を使用することもできます!sym noisy詳細な手順については、こちらを参照してください。

于 2010-10-04T12:12:14.467 に答える
0

この記事に従って、シンボルを探す場所を Visual Studio に指示できます。要約すれば:

[ファイル] メニューの [シンボル ファイル パス] をクリックして、シンボル パスを表示、設定、または追加します。

シンボルがどのように使用されるかについてのより包括的な概要は、ここにあります。

OutputDLL がロードされたときに何が起こったかに関する情報がウィンドウに表示されるはずです。おそらく、期待したバージョンではありませんか?

于 2010-09-24T15:42:10.937 に答える
0

pdb は dll では参照されず、Visual Studio によって検索されます。それらが同じディレクトリにある場合は、それらを見つける必要があります。

于 2010-09-24T15:15:10.760 に答える