在vs下讨论debug和release版本的区别

   VS发布程序有两个版本,分别为debug和release版本,debug被称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,为开发人员提供强大的应用程序调试功能。而release被称为发布版本,是为用户准备的版本,客户不允许在发布版本上进行调试,故不保存调试信息,同时,它往往进行了各种优化,以达到代码最小和速度最优。用户使用起来非常方便。

   debug程序通常比release程序要慢,尤其是处理视频方便release要比debug快很多。在release模式下对程序进行调试时,经常会遇到变量虽然初始化了,但是在查看其值的时候却发现是一个随机的数并不是初始化的值,有时候在对变量进行监视的时候了,会出现找不到变量的情况,原因大致如下:debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc, 而release的赋值近似于随机。如果你的程序中的某个变量没被初始化就被引用,就很有可能出现异常:用作控制变量将导致流程导向不一致;用作数组下标将会使程序崩溃;更加可能是造成其他变量的不准确而引起其他的错误。所以在声明变量后马上对其初始化一个默认的值是最简单有效的办法,否则项目大了你找都没地方找。代码存在错误在debug方式下可能会忽略而不被察觉到。debug方式下数组越界也大多不会出错,在release中就暴露出来了,这个找起来就比较难了。


   只有debug版本的程序才能设置断点进行单步调试。release版本不包含任何调试信息,所以体积小、运行速度快。这也是为什么公司会选择release版本作为产品的发布版本,而不是debug调试版本。


参考文章:http://javafans.iteye.com/blog/609937/

    http://blog.csdn.net/gxiaob/article/details/9045085

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章