Condividi tramite


Directory di destinazione BinPlace

BinPlace crea un albero di directory per contenere i file che sta posizionando. La struttura di tale albero è determinata dai parametri passati alla riga di comando di BinPlace, ai valori di determinate variabili di ambiente e al contenuto di un file di testo noto come file di posizione.

BinPlace inserisce i file se viene soddisfatta una delle due condizioni:

  1. Il file viene specificato nella riga di comando binPlace.

  2. Il file è un file simbolo che risiede nella stessa directory del file eseguibile associato e il file eseguibile viene specificato nella riga di comando. In questo caso, il file di simboli e il file eseguibile verranno inseriti in directory diverse. BinPlace può anche eseguire la suddivisione o la rimozione (vedere Simboli pubblici e simboli privati) o rimozione (vedere File system simboli) in questo scenario.

Quando BinPlace inserisce i file, sovrascriverà automaticamente un file precedente con lo stesso nome. Tuttavia, BinPlace non sovrascriverà per impostazione predefinita un file più recente. In particolare, se è presente una versione più recente (o identica) di un file eseguibile, né il file eseguibile né i file di simboli associati verranno scritti nel disco. Se si desidera che BinPlace sovrascriva i file indipendentemente dal timestamp, usare l'opzione della riga di comando -f .

Destinazioni file

Il nome della directory in cui BinPlace inserisce qualsiasi file specificato nella riga di comando viene creato concatenando due directory: la directory di destinazione radice e la sottodirectory della classe. Le directory possono avere nomi scelti, ma in genere la directory di destinazione radice è la radice dell'albero della directory in cui si inseriscono i file e la sottodirectory della classe è una sottodirectory in cui sembra logico posizionare un file o un gruppo specifico di file.

  • La directory di destinazione radice può essere specificata usando il parametro -r RootDestinationPath della riga di comando. Se viene omesso, il valore predefinito viene determinato dal _NT386TREE, _NTIA64TREE o _NTAMD64TREE variabile di ambiente in un computer basato su x86, basato su Itanium o computer basato su x64 rispettivamente. La directory di destinazione radice deve essere definita in uno di questi modi; se non è definito in alcun modo, BinPlace non verrà eseguito.

  • La sottodirectory della classe viene in genere specificata nel file di posizione. È possibile specificare più sottodirectory di classe per un file; In questo modo BinPlace esegue copie del file e le inserisce in ognuna delle posizioni specificate. Per informazioni dettagliate, vedere Inserire la sintassi file . La sottodirectory della classe può essere specificata anche usando il parametro -:D EST ClassPath.

Destinazioni file simbolo

Quando un file eseguibile è elencato nella riga di comando di BinPlace e nella stessa directory è presente un file di simboli associato, BinPlace copia (o modifica) il file di simboli. La directory in cui viene inserito questo file di simboli viene creata concatenando tre directory: la directory radice dei simboli, la sottodirectory della classe e la sottodirectorydi tipo file.

  • La directory radice del simbolo può essere specificata usando il parametro della riga di comando -s SymbolRoot. Se si usano le opzioni -a e -x , i file di simboli rimossi verranno inseriti nella directory SymbolRoot , in questo caso è possibile usare -n FullSymbolRoot per specificare il percorso dei file di simboli completi.

  • La sottodirectory della classe viene in genere specificata nel file di posizione. È possibile specificare più sottodirectory di classe per un file; In questo modo BinPlace esegue copie del file e le inserisce in ognuna delle posizioni specificate. Per informazioni dettagliate, vedere Inserire la sintassi file . La sottodirectory della classe può essere specificata anche usando il parametro -:D EST ClassPath. Se viene usata l'opzione della riga di comando -y , non verrà usata alcuna sottodirectory della classe per i file di simboli, la directory di destinazione sarà semplicemente costituita dalla directory radice del simbolo e dalla sottodirectory di tipo file.

  • La sottodirectory di tipo file viene usata solo per i file di simboli. È determinato dall'estensione del nome file del file eseguibile originale. Pertanto, i file di simboli associati ai file .exe verranno inseriti in una sottodirectory exe, i file di simboli associati alle DLL verranno posizionati in una sottodirectory dll e i file di simboli associati ai driver verranno inseriti in una sottodirectory sys. Questa convenzione consente di evitare conflitti di nome file, ad esempio myprogram.exe e myprogram.dll potrebbero avere entrambi i file di simboli denominati myprogram.pdb, ma questi file di simboli verranno inseriti in sottodirectory diverse.

Esiste un'eccezione a questo algoritmo. Se non vengono forniti né -s-n , i file di simboli completi verranno inseriti nella stessa posizione dei file binari.

Nota Se si elenca il nome del file di simboli nella riga di comando di BinPlace, BinPlace lo sposta come qualsiasi altro file e non esaminerà il relativo contenuto. Per usare le tecniche di manipolazione dei file simbolo di BinPlace, è necessario elencare il nome del file eseguibile, non il nome del file simbolo.