.PDB

PDB ファイル

Program Database (Visual C++ Debug Symbols)
質問する
クイック回答

PDBファイルはプログラムデータベース(Program Database)です。これは Visual Studio コンパイラがコンパイル済みの EXE または DLL と共に作成するデバッグシンボルファイルです。直接開くものではなく、デバッグ時に Visual Studio や WinDbg が自動的に読み込みます。主な懸念事項はマルウェアではなく機密性です。PDB は内部の関数名やソースパスを明らかにするため、公開リリースパッケージには含めないようにしてください。

開発元: Microsoft カテゴリ: 開発用ファイル オープンスタンダード MIME: application/octet-stream
対応OS Windows Linux
関連: .DO · .MD · .HEX · .XSD

このページの内容

19k+ 個の拡張子を索引済み
最終確認日:Aug 16, 2026

ファイルの種類がわかりませんか?

ファイルを識別ツールにドロップしてください。最初の数バイトを読み取って形式を特定します。

ファイルを識別する

PDB ファイル形式とは?

.pdb ファイルにはプログラムのデータベースが含まれています。具体的には、Microsoft Visual C++ ツールチェーンによって生成されたデバッグシンボル、ソースファイルのマッピング、および型情報の構造化されたストアです。これらはコンパイル元の対応する .exe または .dll と組み合わせて使用されます。これらのバイナリの内部に埋め込まれているのではなく、別のファイルとして配布されます。

デバッグ情報

.pdb ファイルに保存されているデバッグシンボルにより、デバッガは例外に関する重要な情報を中継したり、メモリアドレスをソースファイルの行番号にマッピングしたり、最終的なバイナリから削除された関数名や変数名を公開したりできます。これらは、開発環境と本番環境の両方でプログラムのトラブルシューティングやエラー対処を行う際に役立ちます。

.pdb ファイルの作成方法

.pdb ファイルは、コンパイルプロセス中に MSVC コンパイラ (cl.exe) とリンカー (link.exe) によってソースファイルから生成されます。これらは Just-In-Time (JIT) コンパイルの産物では「ありません」。これはよくある誤解です。現代の .pdb ファイルは、Visual Studio .NET で導入された MSF 7.00 (Multi-Stream File) バイナリコンテナを使用しています。各 .pdb は GUID と Age カウンタを介してバイナリに関連付けられており、異なるビルドの .pdb は読み込まれません。フォーマットがプロプライエタリであるため、Visual Studio、WinDbg、llvm-pdbutil などの専用ツールのみが読み取ることができますが、Microsoft はリファレンス実装を公開しています。

セキュリティと安全性

リスク: LOW

PDB はデバッガによって読み取られるパッシブなデータです。実行可能コードは含まれていないため、開いても安全です。本当の懸念はマルウェアではなく機密性です。PDB は内部の関数名、ソースファイルのパス、コード構造を明らかにするため、配布したり漏洩したりすると、ソフトウェアの内部情報が公開されてしまいます(リバースエンジニアにとって有用です)。リリース用の PDB は製品に同梱せず、プライベートなシンボルサーバーに保管してください。

形式の詳細

概要
正式名称Program Database (Visual C++ Debug Symbols)別名 PDB symbol file, Microsoft Program Database
開発元Microsoft登場時期 1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
MIME タイプapplication/octet-stream
タイプMSVC ツールチェーンによって生成されるバイナリデバッグシンボルコンテナ (Multi-Stream File / MSF)
標準規格オープン・ロイヤリティフリー
この拡張子は以下でも使用されています…
  • Palm OS データベース (PalmPilot / eReader 書籍) - PRC/PDB Palm データベース - 電子書籍や PDA アプリデータ(オフセット 0x3C にヘッダー '...')。Visual Studio ではなく Palm/eReader ツールで開かれます。
  • Protein Data Bank 分子構造 - 分子の 3D 原子座標を記述するプレーンテキストの PDB ファイル。PyMOL/Chimera/Jmol で開かれます。
  • Quicken 価格/ポートフォリオデータ (.pdb) - Intuit Quicken が書き出した .pdb データファイル。データベースが誤って「Quicken」オープナーに関連付けられた際の意味です。
マジックバイト ・ ファイルシグネチャ
オフセット
000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c
16進数
4D6963726F736F667420432F432B2B204D534620372E30300D0A1A4453
ASCII
Microsoft C/C++ MSF 7.00···DS
現代の MSVC PDB は、0x20 バイトの MSF 7.00 スーパーブロックマジック «Microsoft C/C++ MSF 7.00\r\n\x1aDS\0\0\0» で始まります。古い PDB 2.0 ファイルは «Microsoft C/C++ program database 2.00\r\n\x1aJG» で始まります。(無関係なものとして、Palm PDB や Protein Data Bank PDB はこの拡張子を共有する別のファイルです。also_used_by を参照してください。)

PDB ファイルを開くプログラム

Windows4 apps
Visual Studio フリーミアム 一致するビルドをデバッグするときに PDB が自動的に読み込まれます。ダンプを確認するには、「ファイル」>「開く」>「クラッシュダンプ」を選択し、「ツール」>「オプション」>「デバッグ」>「シンボル」で PDB フォルダを指定します。Community エディションは無料です。
WinDbg (Debugging Tools for Windows) 無料 シンボルパス (.sympath) を PDB フォルダまたはシンボルサーバーに設定してから、ダンプまたはライブターゲットをロードします。WinDbg は PDB からシンボルを解決します。
llvm-pdbutil オープンソース コマンドラインツールです。「llvm-pdbutil dump」を実行すると、PDB 内部のストリーム、型、シンボルを検査できます。デバッガなしで内容を確認したり探索したりするのに便利です。
dumpbin / DIA SDK tools 標準搭載 Visual Studio に同梱されています。バイナリのデバッグディレクトリを検査したり、(DIA を介して)プログラムから PDB の内容を読み取ったりします。
Linux1 app
llvm-pdbutil オープンソース コマンドラインツールです。「llvm-pdbutil dump」を実行すると、PDB 内部のストリーム、型、シンボルを検査できます。デバッガなしで内容を確認したり探索したりするのに便利です。

技術的詳細

詳細仕様
コンテナ形式MSF (Multi-Stream File) - 単一ファイル内に複数の名前付きデータストリームを保持する、ページベースの内部ストリームコンテナ
ファイルシグネチャ (マジックバイト)ASCII 文字列 `Microsoft C/C++ MSF 7.00` で始まり、その後に CR LF とオフセット 0 の特定の制御バイトが続きます。レガシーな PDB 2.0 ファイルは `Microsoft C/C++ program database 2.00` で始まります
エンコーディングバイナリ、全体を通してリトルエンディアンのバイト順
内部ストリームDBI (デバッグ情報)、TPI/IPI (型および ID レコード)、パブリックおよびグローバルシンボルストリーム、モジュールごとのシンボルストリーム、ソース/行番号マッピングテーブル
バイナリリンクキー`.pdb` と、ペアになる `.exe` または `.dll` のデバッグディレクトリの両方に書き込まれる GUID + Age カウンタ。不一致があるとデバッガはシンボルファイルを拒否します
一般的なファイルサイズ100 KB から 500 MB。大規模なネイティブ C++ プロジェクトでは、日常的に数百メガバイトの `.pdb` ファイルが生成されます
圧縮なし - データはページ構造化されていますが、圧縮はされていません
ページサイズMSF 7.00 (BigMsf) では 4 KB ページ。古い MSF 2.0 コンテナではより小さいページサイズが使用されていました
フォーマットのバリエーションPDB 2.00 (レガシーな JG マジック、MSVC 6.0 以前)、MSF 7.00 / BigMsf (Visual Studio .NET 以降、現在の C/C++ 用)、Portable PDB (.NET/Roslyn で使用される別のクロスプラットフォーム形式)
生成ツールチェーンMSVC コンパイラ (`cl.exe`) およびリンカー (`link.exe`)。また、`/Z7` または `/Zi` コンパイラフラグを使用して Windows をターゲットにする場合、Clang/LLVM によっても出力されます
消費ツールVisual Studio Debugger、WinDbg、DIA SDK、`llvm-pdbutil`、`dumpbin`、および CrashPad や Breakpad シンボルコンバータなどのクラッシュ分析ツール
シンボルサーバーのサポート`.pdb` ファイルは、シンボルサーバー上で GUID + Age によってインデックス付けされます (`symstore.exe` または互換サーバー経由)。デバッガはバイナリのデバッグディレクトリにあるキーを使用して、必要に応じて正しいコピーを取得します
プラットフォームのサポートWindows 上でネイティブ。Linux および macOS では LLVM ツール (`llvm-pdbutil`、LLDB) を介したクロスプラットフォームの読み取りが可能
MIME タイプapplication/octet-stream (専用の登録済み MIME サブタイプはなし)
デプロイメントパターンビルドターゲット (`.exe` または `.dll`) ごとに 1 つの `.pdb`。バイナリと一緒に別のファイルとして配布されるか、プライベート/パブリックなシンボルサーバーに保存されます。バイナリ自体には埋め込まれません
リリース日1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
最新バージョンMSF 7.00 ('BigMsf'); portable PDB used by .NET/Roslyn alongside it
オープンスタンダードはい · ロイヤリティフリー
仕様書github.com

PDB の変換

コミュニティ Q&A

ユーザーからの質問
質問する
PDB ファイルを扱うユーザーからヘルプを得られます。OSやソフトウェアのバージョンなど、具体的に記載してください。
アカウント不要 ・ 通常1日以内に回答されます

まだ質問はありません。PDB ファイルについて最初の質問をしてみましょう。

よくある質問

Visual Studio における PDB ファイルとは何ですか?
プログラムデータベース(Program Database)です。コンパイラが EXE/DLL と共に作成するデバッグシンボルファイルです。マシンコードをソースファイル、行番号、名前にマッピングし、デバッガが読み取り可能なスタックトレースを表示したり、コードをステップ実行したりできるようにします。
.pdb ファイルを開くにはどうすればよいですか?
通常、直接開くことはありません。デバッグ中のバイナリと一致する場合、Visual Studio や WinDbg が自動的に読み込みます。内容を検査するには、llvm-pdbutil や DIA ベースのツールを使用して、シンボルをテキストとしてダンプします。
デバッガが「PDB がバイナリと一致しません」と表示するのはなぜですか?
各 PDB には、特定のビルドに関連付けられた GUID+Age スタンプが含まれています。EXE/DLL が再コンパイルされた場合、古い PDB は一致しなくなり、デバッガはそれを拒否します。一致する PDB を取得するには再ビルドするか、そのビルドに対応する正確な PDB を取得してください。
.pdb を PDF に変換できますか?
Visual C++ の PDB の場合は不可能です。これはドキュメントではなくバイナリのデバッグデータです。(もしその .pdb が拡張子を共有している Palm/eReader の電子書籍であれば、Calibre で PDF に変換できますが、それは全く別のファイル形式です。)
プログラムと一緒に PDB ファイルを配布する必要がありますか?
いいえ、アプリはそれらがなくても動作します。PDB はデバッグ専用です。多くのチームは、ユーザーにソース構造を公開せずに後でクラッシュダンプを分析できるよう、プライベートなシンボルサーバーに保管しています。
PDB からソースコードを復元できますか?
いいえ。ソースファイルへのパス、行番号、名前、型をマッピングしますが、ソースコード自体は含まれていません。デバッグを読みやすくするものであり、コードを再構築するものではありません。

参考文献

1Microsoft Learn - Symbol (.pdb) files in the debuggerlearn.microsoft.com
2microsoft/microsoft-pdb - PDB format informationgithub.com

さらに探索

データベース全体から

今週のトップ拡張子

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.RPMSGRestricted Permission Message
6.MDMarkdown Document
7.NOMEDIAAndroid No-Media Marker File
8.PRO6XProPresenter 6 Bundle File
9.EXEWindows Executable (Portable Executable)
10.PRDXSoftMaker Presentations Document

関連する拡張子

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

無料ファイルツール

ブラウザで動作するファイル識別および画像変換ツール。すべてお使いのデバイス上で実行されます。

ツールボックスを開く

ファイル拡張子を A-Z で閲覧