Поделиться через


Файловые системы символов

Существует два распространенных файловой системы символов. В этом документе они будут называться текущей системой и старой системой.

Текущая файловая система символов

В текущей системе всегда есть два файла: исполняемый файл и PDB-файл. PDB-файл содержит все символы. Исполняемый файл содержит указатель на PDB-файл.

Если PDB-файл символов содержит частные символы, BinPlace может удалить эти сведения и создать файл символов с полосатым символом. Дополнительные сведения см. в разделе "Открытые символы" и "Частные символы ".

Старая файловая система символов

В старой системе исполняемые файлы и файлы символов можно упорядочить двумя способами:

  • Исполняемый файл и PDB-файл. В этом расположении большинство сведений о символах находится в PDB-файле. Оставшаяся часть сведений о символах включается в исполняемый файл. Исполняемый файл также содержит указатель на PDB-файл.

  • Исполняемый файл, PDB-файл и DBG-файл. PDB-файл совпадает с двумя файлами: он содержит большую часть символов. Оставшаяся часть сведений о символах находится в DBG-файле. В исполняемом файле нет сведений о символах. Исполняемый файл содержит указатель на DBG-файл, а DBG-файл содержит указатель на PDB-файл.

В старой файловой системе символов как двухфайловый, так и трехфайловый механизм содержат один исполняемый код и одинаковые символы. Программа может выполняться и может быть отлаживаема в любом расположении. Однако трехфайловый механизм ускоряет выполнение, так как исполняемый файл меньше.

Если у вас есть двоичные файлы, созданные с помощью старой файловой системы символов в двухфакторном расположении, BinPlace может преобразовать его в трехфакторное расположение. Другими словами, BinPlace может разделить исполняемый файл на исполняемый файл без символов и новый DBG-файл, содержащий символы, которые находились в исполняемом файле.

BinPlace также может отделить сведения о закрытых символах из файлов в старой файловой системе символов, но только в том случае, если он также разделяет файлы (иными словами, только если он изменяет файлы с двухфакторной договоренности на трехфайловую структуру). BinPlace не может удалять частные символы из файлов в старой файловой системе символов и оставлять их в двухфайловом расположении. И если файлы уже находятся в трехфайловом соглашении, BinPlace не будет выполнять никаких операций удаления; Действительно, он даже не будет перемещать файлы символов, если исполняемый файл называется в командной строке BinPlace. Дополнительные сведения см. в разделе "Открытые символы" и "Частные символы ".