Слияние файлов PDB возможны, но могут выполняться только cl.exe и link.exe. Я не знаю каких-либо отдельных инструментов для объединения файлов PDB.
Вы можете использовать опцию / PDB для компоновщика (я проверил VC2005), чтобы указать альтернативное имя файла pdb.
Microsoft предлагает также включают файлы PDB (каждый obj имеет соответствующий файл PDB) вместе с файлом .LIB.
Вы не можете архивировать файлы PDB внутри .LIB-файла, я пробовал его с VC2003, не удалось.
Компиляция с / Z7 может избежать файлов PDB для .LIB, но объектные файлы большие, если link.exe не отделяет отладочную информацию. Если у вас нет опции / debug для компоновщика, то ваш exe / dll не может быть отлажен.
Компилятор (cl.exe) всегда записывает файл vcXX.pdb, если вы не используете параметр / Fd для указания другого имени. Даже когда вы используете cl.exe для создания исполняемого файла «напрямую», он создаст файл vc80.pdb, а затем файл link.exe будет вызывать имя файла pdb, аналогичное исполняемому.
cl / Zi test.c
cl.exe -> vc80.pdb link.exe read vc80.pdb (имя встроено в файл test.obj) -> test.pdb
Каждый time cl / Zi / c скомпилировать файл, он попытается изменить существующий файл vcXX.pdb, а не перезаписывать его.
Я получил вышеупомянутое соглашение путем игры с компилятором снова и снова, а затем захват sceinternals's procexp и проанализировать его. Надеюсь, что это поможет.