VB / C#中的“生成调试信息”是什么意思?

VB / C#中的“生成调试信息”是什么意思?

“none”和“pdb-only”之间的区别非常明显。 但是“pdb-only”和“full”呢?

编译时,编译器将为您生成包含应用程序符号的pdb文件,Visual Studio调试器和外部调试器可以使用它来轻松找到出错的位置。

“Full”表示在构建应用程序时将生成完整的调试信息,因此代码本身将是可调试的,其中包括[DebuggableAttribute] ,它将代码链接到调试信息,例如符号。

“pdb-only”表示只在构建时生成pdb调试信息,这不会将[DebuggableAttribute]添加到JIT编译器用来链接代码调试信息的编译代码中。

更多信息可以在这里找到

从我应该编译发布版本与调试信息为“完整”或“仅pdb”?

另请参阅https://docs.microsoft.com/en-us/cpp/build/reference/debug-generate-debug-info

我会用pdb-only构建。 您将无法将调试器附加到已发布的产品,但如果您获得崩溃转储,则可以使用Visual Studio或WinDBG在崩溃时检查堆栈跟踪和内存转储。

如果你使用full而不是pdb,你将获得相同的好处,除了可执行文件可以直接附加到调试器。 鉴于您的产品和客户,您需要确定这是否合理。