Я использую команду CMake для установки файлов PDB, чтобы включить отладку в дистрибутиве разработчика моего приложения C ++. Команда как ниже:
INSTALL(DIRECTORY ${PROJECT_BINARY_DIR}/Debug
DESTINATION bin
FILES_MATCHING
PATTERN *.pdb
)
Кроме того, мне удалось установить соответствующий источник, используемый для создания этого дистрибутива разработчика, в папку ‘src’ на том же уровне, чтобы моя папка дистрибутива верхнего уровня выглядела так:
include\
src\
lib\
bin\
share\
doc\
3rdparty\
etc\
Как я могу сообщить файлам PDB, где находится источник (я предполагаю, что это необходимо)? Есть команда CMake, которая может достичь этого? Какой будет маленький пример?
Хранилище файлов PDB абсолютный пути к исходным файлам. Когда сервер символов не используется, единственный способ обеспечить некоторую степень перемещения исходного кода — это использовать subst
команда.
Идея состоит в том, чтобы использовать subst
создать имя буквы диска (например, N:\
) для корня исходного дерева. Затем выполните сборку с этого диска, чтобы абсолютные пути начинались с N:\
встраиваться в файлы PDB. Когда вам позже потребуется отладить исполняемый файл на другом компьютере, используйте subst
на этой машине, чтобы получить те же абсолютные пути к источникам. Это позволит файлам PDB найти исходные файлы.
Например, если у вас есть файл C:\MySources\main.cpp
, сделайте следующее:
subst N: C:\MySources
N:
run your build
Позже, скажем, вам нужно отладить на машине, где хранится тот же файл D:\Devel\Other\main.cpp
, Просто делай subst N: D:\Devel\Other
а затем работать с N:
ехать туда тоже.
Этот ответ в значительной степени основан на информации из этого вопрос и ссылки в нем.
я просто ответил на мой собственный похожий вопрос, Как заставить CMake установить файлы PDB для целей.
Используйте это правило установки, чтобы скопировать файл PDB целевого объекта, если он существует, в каталог bin местоположения установки цели.
install(FILES $<TARGET_PDB_FILE:${PROJECT_NAME}> DESTINATION bin OPTIONAL)
Вам просто нужно сообщить Visual Studio, где находится источник … Появится диалоговое окно браузера файлов; просто укажите источник на вашем локальном компьютере, если пути отличаются от того, когда он был построен.
Файл PDB хранит путь к файлам, как они были при компиляции программы. Вы ничего не должны сделать, чтобы сообщить им, где источник было.