3 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
最重要的是,在调试模式下没有优化,而在发布模式下则有优化。这很重要,因为编译器非常先进,可以对代码进行一些非常棘手的低级改进。因此,您的代码中的某些行可能会在没有任何指令的情况下离开,或者某些行可能会混淆。逐步调试是不可能的。此外,局部变量通常以神秘的方式进行优化,因此Watches和QuickWatches通常不起作用,因为变量是“优化掉的”。并且还有许多其他优化。尝试调试优化的.NET代码,你会看到。
另一个关键区别在于,因此默认的Release设置不会产生大量的调试符号信息。这是您可能已经注意到的.PDB文件,它允许调试器确定哪些汇编指令与哪行代码相对应,等等。
智慧大石
TA贡献1946条经验 获得超3个赞
“Debug”和“Release”实际上只是可以影响构建和调试的一系列设置的两个标签。
在“调试”模式下,您通常具有以下内容:
程序调试数据库文件,允许您在运行时在源中非常密切地执行程序。
关闭所有优化,允许您检查变量的值并跟踪可能已经优化或内联的函数
一个_DEBUG预处理器定义,允许您编写与调试模式相比在调试模式下行为不同的代码,例如,用于仅在调试时使用的仪器ASSERT
链接到已经使用调试选项编译的库,这些库通常不会部署到实际客户(出于大小和安全性的原因)
在“释放”模式下,将启用优化(尽管有多个可用选项),并且未定义_DEBUG预处理器定义。通常,您仍然希望生成PDB文件,因为当事情运行得更快时,能够在发布模式下“调试”非常有用。
- 3 回答
- 0 关注
- 1334 浏览
添加回答
举报
0/150
提交
取消