2011-12-08 8 views
8

私はDLLを持っており、DLLを作成するのに使用されたソースが正確です。顧客からダンプファイルを取得したときにローカルシンボルサーバを動作させたい。 (私たちの製品の次のパッチ/リリースの前に、顧客サイトでDLLを更新することはできません)DLLを作成した後にPDBファイルを作成することは可能ですか?

+0

このdllファイルを再コンパイルしようとしましたか? – rekire

+0

デバッガは新しいPDBと古いDLLファイルとを一致させません – Arve

答えて

6

これは不可能なようです。ここではこれを見ている:Why does Visual Studio require debugger symbol files to exactly match the binary files that they were built with?

またはこの記事:のうちPDB Files: What Every Developer Must Know

引用「PDBファイル:どのようなすべての...」:

非常に重要な部分は、デバッガが知っている方法ですこれは、このバイナリの正確な一致するPDBファイル です。 PDBファイルとバイナリの両方に埋め込まれたGUID によって行われます。 GUIDに が一致しない場合は、ソースコード レベルでモジュールをデバッグしません。
.NETコンパイラとネイティブリンカは、このGUIDをバイナリとPDBの に格納します。コンパイルの行為がこのGUIDを作成するので、stopと はこれについて少し考えてください。あなたは昨日のビルドを持っていて、 PDBファイルを保存しなかった場合、バイナリを再度デバッグできるでしょうか? いいえ!このため、 ビルドごとにPDBファイルを保存することが非常に重要です。あなたが思っていることを知っているので、私は先に進み、 という質問があなたの心の中ですでに形成されていると答えます。いいえ、 のGUIDを変更する方法はありません。

+2

あなたが正しいように見えます。しかし、いくつかのケースではchkmatchを使うことができます:http://www.debuginfo.com/tools/chkmatch.html – Arve

+0

うわー、興味深いリンク! OK、*通常は不可能です。私はchkmatchがあなたを助けることを願っています。 – Markus

関連する問題