2012-06-26 7 views
9

.NET DLLファイル内のPDBファイルとは何ですか?通常、人々は配備の際にこのファイルを削除し、dllファイルをlibフォルダに保持するだけですが、何も起こらず、すべてうまくいくようです...PDBファイルとは何ですか?

したがって、PDBファイルは何ですか?

+1

プログラムデータベースファイルの説明については、[シンボルとソースコードの管理](http://msdn.microsoft.com/en-us/library/ms241613)を参照してください。 。 –

答えて

12

プログラムデータベースファイルはインクリメンタルリンクおよびプロジェクト状態とはまったく関係がありません! PDBファイルは、EXEとSOURCESをマップするために使用されます。これらは、デバッグとリリースのバイナリに使用されます。 Here an article実行可能イメージとそのPDBファイルとの間のバインディングリンクを説明します

+0

のコピー+貼り付けのようです。この記事(http://www.codeproject.com/Articles/37883/) Symbols-File-Locator)もこの問題に対処しています – mox

+0

中間層にバインディング、エンドポイント、セキュリティなどの設定ファイルがある場合、pdbを参照していますか? –

0

.NETでは、ほとんどの場合、ローカル変数(および範囲情報もIIRC)のシンボル情報が保持されます。

+0

シンボルを詳しく説明できますか? –

7

PDBファイルには、アプリケーションをデバッグできる情報が格納されています。

ファイルが通常配備されていないのは、通常、配備する必要がないためです。アプリケーションをデバッグしたい場合は、いつでもディレクトリ、ネットワーク共有、またはシンボルサーバーからロードできます。

+0

+1投票。あなたの答えをありがとうが、私はすべての答えを正しいとマークすることはできません。 –

1

を参照してくださいプログラムデータベース(PDB)ファイルは、プログラムのデバッグ構成のインクリメンタルリンクを許可するデバッグとプロジェクト状態情報を保持しています。 PDBファイルは、/ ZIまたは/ ZiまたはVisual Basic/C#/ JScript .NETプログラムで/ debugを使用してC/C++プログラムをコンパイルすると作成されます。 OBJファイルを作成するたびに、C/C++コンパイラはデバッグ情報をVCx0.PBDにマージします。挿入される情報には型情報が含まれますが、関数定義などのシンボル情報は含まれません。したがって、すべてのソースファイルに共通ヘッダーファイルが含まれていても、それらのヘッダーのtypedefはすべてのOBJファイルに格納されるのではなく、一度だけ格納されます。

+2

これは間違っています! PDBは、プロジェクトの状態情報と増分リンクとは関係ありません。 PDBには定義などのシンボルが含まれています。 Moxから以下の詳細を参照してください。 – mox

+1

https://msdn.microsoft.com/en-us/library/yd4f8bd1(vs.71).aspx – michaelmsm89

関連する問題