Исполняемые файлы Windows с полными встроенными символами отладки?

Существуют ли случаи, когда исполняемый файл Windows (написанный на C++ с Visual Studio) может содержать полные символы отладки? Или полный набор символов отладки содержится только в его файле.pdb?

Есть ли способ настроить сборку приложения для Windows, чтобы мы могли отладить его без файла.pdb?

1 ответ

Решение

Из документации для вашего набора инструментов:

Опция C7 Compatible (/Z7) компилятора заставляет компилятор оставлять отладочную информацию в файлах.obj. Вы также можете использовать опцию компилятора базы данных программ (/Zi), чтобы сохранить отладочную информацию в PDB для файла.obj. Компоновщик ищет PDB объекта сначала по абсолютному пути, записанному в файле.obj, а затем в каталоге, содержащем файл.obj. Вы не можете указать имя файла PDB объекта или местоположение компоновщику.

Невозможно создать.exe или.dll, которая содержит отладочную информацию. Отладочная информация всегда помещается в файл.obj или.pdb.

Это не исключает отладочную информацию, помещаемую в раздел EXE-файла другими инструментами... но инструменты Microsoft Visual Studio C++ никогда не делают этого.

Информацию о размещении отладочной информации в файлах OBJ (возможно, содержащихся в статических библиотеках LIB) вместо PDB читайте в документации по параметру компилятора для формата информации отладки.

Другие вопросы по тегам