2017-01-31 10 views
1

Какова правильная конфигурация, чтобы сделать частную символическую сборку выпусков в Visual Studio? Я хочу сгенерировать и сохранить PDB-файл, который позволил бы мне символизировать дампы сбоя встроенного исполняемого файла, но чтобы избежать встраивания отладочной информации в сам исполняемый файл, который позволит внешнему пользователю наблюдать символы, например, имена функций и переменных, без PDB.Каков правильный способ создания частной символической сборки в Visual Studio?

Я привык к формату отладки DWARF, который может быть встроен в исполняемый файл или экспортирован в отдельный файл dSYM, который, по-видимому, является грубым эквивалентом PDB; Я не уверен, имеет ли Visual Studio аналогичную возможность когда-либо/иногда встраивать отладочную информацию аналогично или нет в исполняемый файл, и если да, то какие параметры конфигурации мне нужно включить, чтобы убедиться, что сборка релиза не работает, t вставляйте эту информацию.

+1

Если вы пишете PDB, вы уже разделили символы, как я помню. Совместимость с отладчиками C7 будет внедрять их в окончательный исполняемый файл; отдельный PDB будет хранить их в своем собственном файле (который вы должны сохранить с вашими битами релиза как часть процесса сборки для выполнения именно того, что вы описываете, отладки дампов с поля). Вам НЕ нужно (и * должен * не хотеть) отправлять PDB. – WhozCraig

+0

Расширение комментария @ WhozCraig, [MiniDumpWriteDump] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms680360.aspx), не нуждается в символьной информации для записи файла дампа. Символы разрешаются в вашем отладчике, используя ваши личные файлы PDB. – IInspectable

+0

@WhozCraig Конечно, я не собираюсь поставлять PDB. Просто волновался, может ли информация об отладке быть встроена в фактический исполняемый файл. – Danra

ответ

3

В /Z7, /Zi, /ZI (Debug Information Format) опции компилятора позволяют вам

выбрать тип отладочной информации, созданной для вашей программы и будет ли эта информация хранится в (.obj) файлов или в базе данных программы (PDB) объекта.

Оба /Zi, а также /ZI магазин отладочной информации в базе данных программы. Никакая информация не будет скомпилирована в окончательный исполняемый файл.

Поскольку вы планируете использовать отладочную информацию для анализа аварийных дампов (предположительно) релизов, убедитесь, что опция компилятора /Zo (Enhance Optimized Debugging) также включена.