我注意到有关此问题的其他一些堆栈溢出问题,但似乎没有一个真正解决我想要找到的问题。
我一直在"调试"开发模式,但现在我注意到当我切换到"发布" "解决方案配置"中的模式我仍然可以设置断点并查看变量的值。
我被告知"调试"模式很慢。有人可以解释将我的解决方案配置(顶层菜单下拉菜单)设置为" debug&#34 ;?的优点是什么?它给我带来了哪些额外的调试功能?
答案 0 :(得分:2)
最值得注意的是:Debug配置将包含堆栈跟踪中的行号。
然而,还有更多:编译器不会优化或内联您的代码,而这些代码可以"影响表现。通常,不建议部署调试版本。
您可以添加编译器指令,因为(默认情况下)定义了DEBUG常量:
public void Method()
{
#if DEBUG
log("Method invoked");
#end if
...
}
答案 1 :(得分:2)
直接来自Microsoft:
程序的Debug配置使用完整的符号调试信息进行编译,无需优化。优化使调试变得复杂,因为源代码和生成的指令之间的关系更复杂。
程序的Release配置不包含符号调试信息,并且已完全优化。可以在PDB文件中生成调试信息,具体取决于所使用的编译器选项。如果以后必须调试发行版本,则创建PDB文件非常有用。
由于缺乏优化,在调试模式下运行的程序可能会稍慢。但是,您不会分发应用程序的调试版本,因此速度通常不是一个重要因素。您只能访问断点,因为.pdb文件是在发布模式下生成的,但如果您要删除.pdb文件,则无法再设置断点。此外,由于优化,可能存在一些代码区域,其中断点不起作用。