Файлы PDB с установкой CMake

Я использую команду 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, которая может достичь этого? Какой будет маленький пример?

8

Решение

Хранилище файлов 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: ехать туда тоже.


Этот ответ в значительной степени основан на информации из этого вопрос и ссылки в нем.

4

Другие решения

я просто ответил на мой собственный похожий вопрос, Как заставить CMake установить файлы PDB для целей.

Используйте это правило установки, чтобы скопировать файл PDB целевого объекта, если он существует, в каталог bin местоположения установки цели.

install(FILES $<TARGET_PDB_FILE:${PROJECT_NAME}> DESTINATION bin OPTIONAL)
5

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

2

Файл PDB хранит путь к файлам, как они были при компиляции программы. Вы ничего не должны сделать, чтобы сообщить им, где источник было.

0
По вопросам рекламы [email protected]