シンボル ファイル システム

一般的なシンボル ファイル システムは 2 つあります。 このドキュメントでは、これらを現在のシステム古いシステムと呼びます。

現在のシンボル ファイル システム

現在のシステムには、実行可能ファイルと .pdb ファイルの 2 つのファイルが常に存在します。 .pdb ファイルには、すべてのシンボルが含まれています。 実行可能ファイルには、.pdb ファイルへのポインターが含まれています。

.pdb シンボル ファイルにプライベート シンボルが含まれている場合、BinPlace ではこの情報を取り除き、削除されたシンボル ファイルを生成できます。 詳細については「パブリック シンボルとプライベート シンボル」を参照してください。

古いシンボル ファイル システム

古いシステムでは、実行可能ファイルとシンボル ファイルは 2 つの異なる方法で配置できます。

  • 実行可能ファイルと .pdb ファイル。 この配置では、大部分のシンボル情報は .pdb ファイルにあります。 残りのシンボル情報は実行可能ファイルに含まれます。 また、実行可能ファイルには、.pdb ファイルへのポインターが含まれています。

  • 実行可能ファイル、.pdb ファイル、.dbg ファイル。 .pdb ファイルは、2 つのファイルの配置と同じです。大部分のシンボルが保持されます。 残りのシンボル情報は.dbg ファイルにあります。 実行可能ファイルには、シンボル情報はありません。 実行可能ファイルには、.dbg ファイルへのポインターが含まれており、.dbg ファイルには .pdb ファイルへのポインターが含まれています。

古いシンボル ファイル システムでは、2 つのファイルの配置と 3 つのファイルの配置の両方に、同じ実行可能コードと同じシンボルが含まれています。 プログラムは実行可能で、どちらの配置でもデバッグできます。 ただし、実行可能ファイルのサイズが小さいため、3 ファイルの配置によって実行速度が向上します。

2 ファイル配置の古いシンボル ファイル システムを使用してビルドされたバイナリがある場合、BinPlace はそれを 3 ファイル配置に変換できます。 言い換えると、BinPlace は、実行可能ファイルをシンボルなしの実行可能ファイルと、実行可能ファイル内のシンボルを含む新しい .dbg ファイルに「分割」できます。

また、BinPlace は、古いシンボル ファイル システムのファイルからプライベート シンボル情報を削除できますが、ファイルも分割されている場合 (つまり、ファイルを 2 ファイルの配置から 3 ファイルの配置に変更する場合のみ) に限られます。 BinPlace では、古いシンボル ファイル システム内のファイルからプライベート シンボルを取り除き、2 ファイルの配置のままにすることはできません。 また、ファイルがすでに 3 ファイル配置になっている場合、BinPlace は削除を実行しません。実際、実行可能ファイルの名前が BinPlace コマンド ラインにある場合、シンボル ファイルは移動しません。 詳細については「パブリック シンボルとプライベート シンボル」を参照してください。