Что означает "Создать информацию отладки" в VB/C#?

Что означает "Создать информацию отладки" в VB/C#?

Разница между "none" и "только для pdb" довольно очевидна. Но что насчет "pdb-only" и "full"?

2 ответа

Решение

При сборке компилятор сгенерирует для вас файл pdb, который содержит символы для вашего приложения и может использоваться отладчиком Visual Studio и внешними отладчиками, чтобы легко найти, где что-то пошло не так.

"Полный" означает, что полная отладочная информация будет сгенерирована при сборке приложения, поэтому сам код будет отлаживаемым, включая [DebuggableAttribute] который связывает код с информацией отладки, например символами.

"только для pdb" означает, что при сборке будет сгенерирована только информация об отладке pdb, которая не добавит [DebuggableAttribute] к скомпилированному коду, который используется компилятором JIT для связи кода с информацией отладки.

Более подробную информацию можно найти здесь

Должен ли я компилировать сборки релизов с отладочной информацией как "полная" или "только для pdb"?

Также см. https://docs.microsoft.com/en-us/cpp/build/reference/debug-generate-debug-info

Я бы собрал только с pdb. Вы не сможете прикрепить отладчик к выпущенному продукту, но если вы получите аварийный дамп, вы можете использовать Visual Studio или WinDBG для проверки следов стека и дампов памяти во время сбоя.

Если вы используете full, а не pdb-only, вы получите те же преимущества, за исключением того, что исполняемый файл может быть подключен непосредственно к отладчику. Вам необходимо определить, является ли это обоснованным, учитывая ваш продукт и клиентов.

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