web-dev-qa-db-ja.com

PDBファイルとは何ですか?

PDBファイルとは何ですか?ソリューションを再構築するときに、PDBファイルをリリースフォルダーから除外するにはどうすればよいですか?

213
Ata

PDBファイルには、デバッガが操作するための情報が含まれています。とにかく、デバッグビルドよりもリリースビルドの方が情報が少なくなります。ただし、まったく生成しない場合は、プロジェクトのビルドプロパティに移動し、リリース構成を選択し、[詳細設定...]をクリックして、[デバッグ情報]で[なし]を選択します。

208
Jon Skeet

私はもともと「顧客のマシンにPDBファイルをデプロイする必要がありますか?」という質問を自問していました。この投稿を読んだ後、ファイルを除外することにしました。

今日まで、Exception.StackTraceを含むメッセージボックスにファイルと行番号の情報がない理由を見つけようとしていたとき、すべてが正常に機能しました-例外のトラブルシューティングに必要です。私はこの投稿を読み直し、重要な情報を見つけました。PDBはアプリの実行に必要ではありませんが、ファイルと行番号がStackTrace文字列に存在する必要があるということです。実行可能フォルダーにPDBファイルを含めましたが、すべて問題ありません。

103
BCA

PDBProgramDの略語ataBase。名前が示すように、デバッグモードでプログラムを実行するために必要な情報を保持するリポジトリ(データベースなどの永続的なストレージ)です。たとえば、Visual Studioでコードをデバッグするときに必要な多くの重要な関連情報が含まれています。 Visual Studioでデバッガーがブレークすると予想されるブレークポイントを挿入したポイント。

これは、デバッグフォルダーから*.pdbファイルを削除すると、Visual Studioがブレークポイントに到達しないことが何度も発生する理由です。 Visual Studioデバッガーは、*.pdbファイルを使用して、スタックトレースで例外が発生したコードファイルの正確な行番号を通知することもできます。そのため、pdbファイルは、プログラムをデバッグする際に開発者にとって本当に有益です。

通常、*.pdbファイルの生成を除外することは推奨されません。本番リリースの観点からは、pdbファイルを作成する必要がありますが、製品インストーラーで顧客サイトに出荷しないでください。生成されたすべてのPDBファイルを、必要に応じて将来使用または参照できるシンボルサーバーに保存します。 プロセスのクラッシュなどの問題をデバッグする場合に特に適しています。クラッシュダンプファイルの分析を開始し、ビルドプロセス中に作成された元の*.pdbファイルが保持されない場合、Visual Studioはクラッシュを引き起こしているコードの正確な行を特定できません

すべてのリリースで*.pdbファイルの生成を完全に無効にする場合は、プロジェクトのプロパティに移動->ビルドタブ->をクリック Advanced ボタン-> [デバッグ情報]ドロップダウンボックスからnoneを選択->を押します OK 以下のスナップショットに示すように。

None Debug Info setting for a C# Project

:この設定は、「デバッグ」ビルド構成と「リリース」ビルド構成で別々に行う必要があります。

73
RBT

PDBファイル には、デバッガーが使用する情報が含まれています。アプリケーションを実行する必要はなく、リリースされたバージョンに含める必要もありません。

Visual Studioでのpdbファイルの作成を無効にすることができます。コマンドラインまたはスクリプトからビルドする場合は、/Debugスイッチを省略します。

13
Mark Byers

プログラムデバッグデータベースファイル(pdb)は、デバッグ情報を保存するためのMicrosoftによるファイル形式です。

Visual Studioまたはコマンドプロンプトを使用してプロジェクトをビルドすると、コンパイラはこれらのシンボルファイルを作成します。

チェック Microsoft Docs

0
Nipuna