BinPlace の出力先ディレクトリ
BinPlace は、配置するファイルを保持するディレクトリ ツリーを作成します。 そのツリーの構造は、BinPlace のコマンド ラインに渡されるパラメーター、特定の環境変数の値、およびプレース ファイルとして知られるテキスト ファイルの内容によって決まります。
BinPlace は、次の 2 つの条件のいずれかが満たされた場合にファイルを配置します。
ファイルは BinPlace コマンド ラインで指定されます。
このファイルは、関連する実行可能ファイルと同じディレクトリに存在するシンボル ファイルであり、実行可能ファイルはコマンド ラインで指定されます。 この場合、シンボル ファイルと実行可能ファイルは別のディレクトリに配置されます。 このシナリオでは、BinPlace は分割またはストリッピング (パブリック シンボルとプライベート シンボルを参照) またはストリッピング (シンボル ファイル システムを参照) を実行することもあります。
BinPlace がファイルを配置すると、同じ名前の古いファイルが自動的に上書きされます。 ただし、BinPlace は、デフォルトでは新しいファイルを上書きしません。 特に、実行可能ファイルの新しい (または同一の) バージョンが存在する場合、実行可能ファイルも関連するシンボル ファイルもディスクに書き込まれません。 BinPlace でタイムスタンプに関係なくファイルを上書きする場合は、-f コマンド ライン オプションを使用します。
ファイルの宛先
BinPlace がコマンド ラインで指定されたファイルを配置するディレクトリの名前は、ルート宛先ディレクトリとクラス サブディレクトリの 2 つのディレクトリを連結して作成されます。 (ディレクトリには任意の名前を付けることができますが、通常、ルート宛先ディレクトリは、ファイルを配置するディレクトリ ツリーのルートであり、クラス サブディレクトリは、特定のファイルまたはファイルのグループを配置するのが論理的と思われるサブディレクトリです。 。)
ルート宛先ディレクトリは、-r RootDestinationPath コマンドライン パラメーターを使用して指定できます。 これを省略した場合、デフォルトは、x86 ベース、Itanium ベース、または x64 ベースのコンピューター上の _NT386TREE、_NTIA64TREE、または _NTAMD64TREE 環境変数によってそれぞれ決定されます。 ルート宛先ディレクトリは、次のいずれかの方法で定義する必要があります。 まったく定義されていない場合、BinPlace は実行されません。
クラスのサブディレクトリは通常、place ファイルで指定されます。 1 つのファイルに複数のクラス サブディレクトリを指定できます。 これにより、BinPlace はファイルのコピーを作成し、指定されたそれぞれの場所に配置します。 詳細については、「配置ファイルの構文」を参照してください。 クラス サブディレクトリは、-:DEST ClassPath コマンド ライン パラメーターを使用して指定することもできます。
シンボルファイルの宛先
実行可能ファイルが BinPlace のコマンド ラインにリストされ、同じディレクトリに関連するシンボル ファイルが存在する場合、BinPlace はシンボル ファイルもコピー (または変更) します。 このシンボル ファイルが配置されるディレクトリは、シンボル ルート ディレクトリ、クラス サブディレクトリ、ファイル タイプ サブディレクトリの 3 つのディレクトリを連結して作成されます。
シンボル ルート ディレクトリは、-s SymbolRoot コマンド ライン パラメーターを使用して指定できます。 -a および -x スイッチを使用している場合、除去されたシンボル ファイルは SymbolRoot ディレクトリの下に配置されます。この場合、-n FullSymbolRoot を使用して完全なシンボル ファイルの場所を指定できます。
クラスのサブディレクトリは通常、place ファイルで指定されます。 1 つのファイルに複数のクラス サブディレクトリを指定できます。 これにより、BinPlace はファイルのコピーを作成し、指定されたそれぞれの場所に配置します。 詳細については、「配置ファイルの構文」を参照してください。 クラス サブディレクトリは、-:DEST ClassPath コマンド ライン パラメーターを使用して指定することもできます。 -y コマンド ライン スイッチを使用すると、シンボル ファイルにクラス サブディレクトリは使用されません。宛先ディレクトリは、単純にシンボル ルート ディレクトリとファイル タイプ サブディレクトリで構成されます。
file-type サブディレクトリは、シンボル ファイルにのみ使用されます。 これは、元の実行可能ファイルのファイル名拡張子によって決まります。 したがって、.exe ファイルに関連付けられたシンボル ファイルは exe サブディレクトリに配置され、DLL に関連付けられたシンボル ファイルは dll サブディレクトリに配置され、ドライバに関連付けられたシンボル ファイルは sys サブディレクトリに配置されます。 この規則は、ファイル名の競合を回避するのに役立ちます。たとえば、myprogram.exe と myprogram.dll の両方に myprogram.pdb という名前のシンボル ファイルがある場合でも、これらのシンボル ファイルは異なるサブディレクトリに配置されます。
このアルゴリズムには例外が 1 つあります。 -s も -n も指定しない場合、完全なシンボル ファイルはバイナリと同じ場所に配置されます。
注 BinPlace のコマンド ラインにシンボル ファイル名をリストすると、BinPlace は他のファイルと同様にそのファイルを移動し、その内容を検査しません。 BinPlace のシンボル ファイル操作手法を使用するには、シンボル ファイル名ではなく、実行可能ファイル名をリストする必要があります。