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

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

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

Ответ 1

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

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

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

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

Ответ 2

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

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

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

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