Aracılığıyla paylaş


BinPlace Hedef Dizinleri

BinPlace, yerleştirmiş olduğu dosyaları tutmak için bir dizin ağacı oluşturur. The structure of that tree is determined by the parameters that are passed to BinPlace's command line, the values of certain environment variables, and the contents of a text file known as a place file.

İki koşuldan biri karşılanırsa BinPlace dosyaları yerleştirir:

  1. Dosya BinPlace komut satırında belirtilir.

  2. Dosya, ilişkili yürütülebilir dosyasıyla aynı dizinde bulunan bir simge dosyasıdır ve yürütülebilir dosya komut satırında belirtilir. Bu durumda, sembol dosyası ve yürütülebilir dosya farklı dizinlere yerleştirilir. BinPlace, bu senaryoda bölme veya çıkarma (bkz. Genel Simgeler ve Özel Simgeler) veya çıkarma (bkz . Sembol Dosya Sistemleri) gerçekleştirebilir.

BinPlace dosyaları yerleştirdiğinde, aynı ada sahip eski bir dosyanın üzerine otomatik olarak yazılır. Ancak, BinPlace varsayılan olarak daha yeni bir dosyanın üzerine yazmaz. Özellikle, yürütülebilir dosyanın daha yeni (veya aynı) bir sürümü varsa, ne yürütülebilir dosya ne de ilişkili sembol dosyaları diske yazılamaz. If you wish BinPlace to overwrite files regardless of their timestamp, use the -f command-line option.

Dosya Hedefleri

BinPlace'in komut satırında belirtilen herhangi bir dosyayı yerleştirdiği dizinin adı, iki dizin birleştirilerek oluşturulur: kök hedef dizin ve sınıf alt dizini. (Dizinler seçtiğiniz adlara sahip olabilir, ancak genellikle kök hedef dizin, dosyalarınızı yerleştirdiğiniz dizin ağacının köküdür ve sınıf alt dizini belirli bir dosya veya dosya grubunu yerleştirmenin mantıksal göründüğü bir alt dizindir.)

  • Kök hedef dizin, -r RootDestinationPath komut satırı parametresi kullanılarak belirtilebilir. Bu atlanırsa, varsayılan değer sırasıyla x86 tabanlı, Itanium tabanlı veya x64 tabanlı bir bilgisayarda _NT386TREE, _NTIA64TREE veya _NTAMD64TREE ortam değişkeni tarafından belirlenir. Kök hedef dizin şu yollardan biriyle tanımlanmalıdır; hiç tanımlanmamışsa, BinPlace çalışmaz.

  • Sınıf alt dizini genellikle yer dosyasında belirtilir. Bir dosya için birden çok sınıf alt dizini belirtmek mümkündür; Bu, BinPlace'in dosyanın kopyalarını alıp belirtilen konumların her birine yerleştirmesine neden olur. Tüm ayrıntılar için bkz. Dosya Sözdizimini Yerleştirme . Sınıf alt dizini de -:D EST ClassPath komut satırı parametresi kullanılarak belirtilebilir.

Sembol Dosyası Hedefleri

Yürütülebilir dosya BinPlace'in komut satırında listelendiğinde ve aynı dizinde ilişkili bir simge dosyası varsa, BinPlace simge dosyasını da kopyalar (veya değiştirir). Bu simge dosyasının yerleştirildiği dizin, üç dizin birleşerek oluşturulur: sembol kök dizini, sınıf alt dizini ve dosya türü alt dizini.

  • Sembol kök dizini -s SymbolRoot komut satırı parametresi kullanılarak belirtilebilir. If you are using the -a and -x switches, stripped symbol files will be placed under the SymbolRoot directory -- in this case, you can use -n FullSymbolRoot to specify the location of full symbol files.

  • Sınıf alt dizini genellikle yer dosyasında belirtilir. Bir dosya için birden çok sınıf alt dizini belirtmek mümkündür; Bu, BinPlace'in dosyanın kopyalarını alıp belirtilen konumların her birine yerleştirmesine neden olur. Tüm ayrıntılar için bkz. Dosya Sözdizimini Yerleştirme . Sınıf alt dizini de -:D EST ClassPath komut satırı parametresi kullanılarak belirtilebilir. And if the -y command-line switch is used, no class subdirectory will be used for symbol files -- the destination directory will simply consist of the symbol root directory plus the file-type subdirectory.

  • Dosya türü alt dizini yalnızca sembol dosyaları için kullanılır. Özgün yürütülebilir dosyanın dosya adı uzantısı tarafından belirlenir. Bu nedenle, .exe dosyalarıyla ilişkili sembol dosyaları bir exe alt dizinine, DLL'lerle ilişkili sembol dosyaları bir dll alt dizinine, sürücülerle ilişkilendirilmiş sembol dosyaları ise sys alt dizinine yerleştirilir. Bu kural, dosya adı çakışmalarını önlemeye yardımcı olur; örneğin, myprogram.exe ve myprogram.dll her ikisi de myprogram.pdb adlı sembol dosyalarına sahip olabilir, ancak bu sembol dosyaları farklı alt dizinlere yerleştirilir.

Bu algoritmada bir özel durum vardır. If neither -s nor -n is supplied, the full symbol files will be placed in the same location as the binaries.

Note If you list the symbol file name in BinPlace's command line, BinPlace will move it like any other file and will not examine its contents. BinPlace'in sembol dosyası işleme tekniklerini kullanmak için, simge dosya adını değil yürütülebilir dosya adını listelemeniz gerekir.