VB / C#中的“生成调试信息”是什么意思?
“none”和“pdb-only”之间的区别非常明显。但是“pdb-only”和“full”呢?
答案 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,你会得到同样的结果 好处,除了可执行文件可以直接附加到 调试器。鉴于您的需要,您需要确定这是否合理 产品&客户。