2010-11-30 18 views
2

サードパーティのライブラリ(Open Scene Graph)を使用するVS 2008 C++プロジェクトがあります。デバッグ用のサードパーティ製DLLのソースコードにVisual Studio 2008を指し示す

この外部ライブラリの関数が呼び出されるたびに、プロジェクトをデバッグすると、(明らかに)デバッガにはコードを参照する場所がない.cppファイルがないため、デバッガだけがジャンプします。これらのファイルが存在し、その場所がわかっているため、プロジェクトにリンクされているヘッダーファイルにジャンプするだけです。だから、私はそれらの小さなインライン関数では何が起こっているか見ることができますが、その実装は.cppファイルにはない私が持っているより大きな関数ではありません。

私は自分のコードと同じ方法で、何とかこれらのサードパーティDLL /ライブラリのソースコードをステップ実行する必要があります。

私はそのライブラリのソースコード全体をダウンロードし、それを自分のマシンにコンパイルしました。今、私はdllとlibsと.pdbファイルと.cppファイルも持っています。しかし、Visual Studioに、サードパーティのライブラリの.cppファイルの場所をどのくらい正確に伝えれば、.dllや.libから来る関数にステップインしたいときに、対応するものを開くことがわかるようになります。 cppファイル(私のプロジェクトにはなく、見つけられた場所は全く別のフォルダです)?

これはすべて可能ですか?

.libs、.dlls(デバッグバージョン)、.pdbsの両方を私のプロジェクトが使用する場所と "追加のライブラリディレクトリ"とプロジェクトのフォルダにコピーしようとしましたが、これでは十分ではありません。

答えて

2

ツール - >オプション - >デバッグ - >シンボルにPDBファイルを含むディレクトリを追加します。

+0

http://www.symbolsource.org/をチェックし、ソースコードの場所も指定する必要があると言われています。 Microsoft製品の場合、.pdbファイルと.cppファイル用の特別なサーバーが使用されていますが、私が作業するライブラリ(シーングラフを開く)はマイクロソフトのものではありませんので、サーバー上にはありません! – Igor

+0

ライブラリがMicrosoftから提供された場合は、以下のようにしなければなりません。http://support.microsoft.com/kb/311503オープンシーングラフには、このようなことはありません。 – Igor

+0

PDBファイル自体はソースコードを指しています(実際にはバイナリがPDBを指し示しています)ので、自分でビルドしてソースやPDBを移動していない場合、Visual Studioは自動的に物事を見つけます。 PDBが元の位置にない場合は、シンボルパス(前述の設定)をポイントするように設定する必要があります。私はVSがそれを見つけることができない場合、ソースファイルのためにあなたにプロンプ​​トを表示すると思う。それを言って、私はそれが非常にばかげていることがわかった...私のアドバイスは、プロセスモニタを実行し、VSが探しているものと、どこを参照してください!それがうまくいかないときは、私がやることです。 –

関連する問題