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

debug程序通常比release程序要慢,尤其是处理视频方便release要比debug快很多。在release模式对程序进行调试的时候经常会遇到变量虽然初始化了,但是在查看其值的时候却发现是一个随机的数并不是初始化的值,有时候在对变量进行监视的时候了,会出现找不到变量的情况,原因大致如下:

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

只有DEBUG版的程序才能设置断点、单步执行、使用 TRACE/ASSERT等调试输出语句。REALEASE不包含任何调试信息,所以体积小、运行速度快。

Debug和Realease版本的区别相关推荐

  1. VC中debug和release版本的区别

    vc中debug和release的不同 收藏  在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当 ...

  2. VS Debug和Release版本的区别

    VS Debug和Release版本的区别 1. 变量. 大家都知道,debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc(注1),而release的赋值 ...

  3. Debug与Release版本的区别

    由于最近搞了个项目,在Dedug版本下正常,但Release版本就有问题,看样子还是debug版本和release版本的区别没有搞清楚. 有遇到下面3个问题: 1.Debug版本下程序可以正常运行退出 ...

  4. C++ debug和release版本的区别及调试技巧

    一.Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程 ...

  5. VS中Debug和Release版本的区别

    之前写过一段代码,能在VS2013的Release下运行,但是不能在Debug下运行,所以又深入学习了一番,下面是学到的经验.(橙色表示引用,红色表示重点) VS中的程序有Debug和Release两 ...

  6. linux release 版本的区别,编译debug版本和编译release版本的区别

    大项目的版本编译会区别debug和release,那debug和release会有什么区别呢? 通过对比这两者的编译选项可以找到答案. 1.对比编译过程 debug: -DOS_LINUX  -DDE ...

  7. C++ debug和release版本运行结果不一致浅析

    问题 最近在写 AVL 树的问题,其中涉及到大量的指针操作.但由于出现了 bug ,在没有修复时出现了单步调试和直接编译运行的结果不一样的情况.大致情况是:单步调试能够根据逻辑把结果运行出来,但是编译 ...

  8. vs如何把c语言编译成静态库,VS中Debug和Realease、及静态库和动态库的区别整理(转)...

    一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码 ...

  9. VS中Debug和Realease、及静态库和动态库的区别整理

    一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码 ...

最新文章

  1. 【错误记录】SeeMusic 一直卡在主界面无法使用 ( 删除 C:\Users\用户名称\AppData\LocalLow\Visual Music Design 应用信息 )
  2. 如何学习Python数据爬虫?
  3. ETH:Windows搭建ETH(区块链技术)利用Web端和小程序端两种方式调用ETH上的SC智能合约
  4. wordpress 后台页面无法显示绑定的台湾语言
  5. ABB 机器人 压包指令PackRawBytes 解包指令UnpackRawBytes
  6. feign调用service_微服务之间的调用(Ribbon与Feign)
  7. ENGINE_API CXNoTouch
  8. Abseil之Prefer Factory Functions to Initializer Methods
  9. 算法详解_【MOT】详解SORT与卡尔曼滤波算法
  10. extern ,extern C 与 __cplusplus
  11. html网页做一个打字小游戏,原生js实现的金山打字小游戏(实例代码详解)
  12. Win10安装动易5.9故障记录
  13. html给图片加文字,如何给图片加上字
  14. 数据标准化/归一化normalization
  15. 戴尔计算机无法安装Win10,dell电脑安装win10 识别不了硬盘
  16. 七、D3D12学习笔记——根签名动态顶点缓冲区
  17. MC开服教程2:材质包法自定义唱片音乐
  18. 【Android】Android外接音源设备之小蜜蜂坑
  19. 《knowledge graph embedding:a survey of approaches and applications》论文阅读
  20. html布局属性,hTML之FLEX布局属性

热门文章

  1. javamail 解码 base64 html格式邮件_python使用QQ邮箱实现自动发送邮件
  2. Linux的实际操作:文件目录类的实用指令 (显示路径pwd 显示文件ls 更改目录cd)
  3. udp怎么保证不丢包_在 Flink 算子中使用多线程如何保证不丢数据?
  4. python如何实现选项功能_python几种常用功能如何实现 python几种常用功能实现代码实例...
  5. 笔记本屏幕30hz_你真的了解笔记本电池和电源适配器吗?
  6. springcloud 网关_Spring Cloud 系列之 Netflix Zuul 服务网关(二)
  7. linux QT 结束当前进程_Linux常用使用命令梳理
  8. R 语言怎么保存工作目录到当前路径_【R语言基础】01.R语言软件环境搭建及常用操作...
  9. linux mysql 实战_linux实用实战
  10. 图像风格迁移cvpr2020_CVPR 2020 | 浙大李俊成:用无监督强化学习方法来获得迁移能力...