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

时间:2009-01-14 01:07:26

标签: c# vb.net

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

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

2 个答案:

答案 0 :(得分:21)

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

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

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

可以找到更多信息here

答案 1 :(得分:1)

来自Should I compile release builds with debug info as "full" or "pdb-only"?

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

  

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

     

如果你选择完全而不是pdb,你会得到同样的结果   好处,除了可执行文件可以直接附加到   调试器。鉴于您的需要,您需要确定这是否合理   产品&客户。