为了账号安全,请及时绑定邮箱和手机立即绑定

Visual Studio中的Debug和Release有什么区别?

Visual Studio中的Debug和Release有什么区别?

大话西游666 2019-08-01 17:28:09
Visual Studio中的Debug和Release有什么区别?Visual Studio中的Debug和Release有什么区别?
查看完整描述

3 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

最重要的是,在调试模式下没有优化,而在发布模式下则有优化。这很重要,因为编译器非常先进,可以对代码进行一些非常棘手的低级改进。因此,您的代码中的某些行可能会在没有任何指令的情况下离开,或者某些行可能会混淆。逐步调试是不可能的。此外,局部变量通常以神秘的方式进行优化,因此Watches和QuickWatches通常不起作用,因为变量是“优化掉的”。并且还有许多其他优化。尝试调试优化的.NET代码,你会看到。

另一个关键区别在于,因此默认的Release设置不会产生大量的调试符号信息。这是您可能已经注意到的.PDB文件,它允许调试器确定哪些汇编指令与哪行代码相对应,等等。


查看完整回答
反对 回复 2019-08-01
?
智慧大石

TA贡献1946条经验 获得超3个赞

“Debug”和“Release”实际上只是可以影响构建和调试的一系列设置的两个标签。

在“调试”模式下,您通常具有以下内容:

  • 程序调试数据库文件,允许您在运行时在源中非常密切地执行程序。

  • 关闭所有优化,允许您检查变量的值并跟踪可能已经优化或内联的函数

  • 一个_DEBUG预处理器定义,允许您编写与调试模式相比在调试模式下行为不同的代码,例如,用于仅在调试时使用的仪器ASSERT

  • 链接到已经使用调试选项编译的库,这些库通常不会部署到实际客户(出于大小和安全性的原因)

在“释放”模式下,将启用优化(尽管有多个可用选项),并且未定义_DEBUG预处理器定义。通常,您仍然希望生成PDB文件,因为当事情运行得更快时,能够在发布模式下“调试”非常有用。


查看完整回答
反对 回复 2019-08-01
?
HUH函数

TA贡献1836条经验 获得超4个赞

大多数情况下,调试包含许多在调试时有用的额外信息。在发布模式下,这一切都被削减并交易以获得性能。


查看完整回答
反对 回复 2019-08-01
  • 3 回答
  • 0 关注
  • 1334 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信