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

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

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

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

主要参考:

http://javafans.iteye.com/blog/609937/

转载于:https://www.cnblogs.com/tianma3798/p/5900752.html

vs中debug和release版本的区别(转)相关推荐

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

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

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

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

  3. VS Debug和Release版本的区别

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

  4. Debug与Release版本的区别

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

  5. 嵌入式开发 | 软件项目中 Debug 和 Release 版本的差异

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | strongerHuang 很多集成开发环境(IDE),比如VS(VC).IAR等,在创建工程时都会自动生成有D ...

  6. 软件项目中Debug 和 Release版本差异

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | 嵌入式专栏 有很多软件集成开发环境(IDE),比如VS(VC).IAR等,在创建工程时都会自动生成有Debug ...

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

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

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

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

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

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

  10. Debug和release版本区别 原码反码补码的转换及存储

    #define _CRT_SECURE_NO_WARNINGS 1  //Debug和release版本区别(VS2019版) //例子 #include<stdio.h> //int m ...

最新文章

  1. 用 C 语言开发一门编程语言 — S-表达式
  2. Linux 小知识翻译 - 「端口限制」
  3. windows dos/cmd常用命令
  4. tar time stamp in the future问题
  5. how does tomcat access js - SAPUI5 Core Libraries
  6. leetcode209. 长度最小的子数组(滑动窗口)
  7. Native Crash 分析
  8. linux指令 sed,Linux命令sed
  9. 当自己购买的基金已经超过自己的心里的收益后会选择继续还是退出?
  10. 如何选择学习主流程序语言(一)
  11. cognos报表导出excel_17个新增功能点,让报表更惊艳!
  12. POJ 1486 Sorting Slides (二分图关键匹配边)
  13. ES6 里面的 Promise
  14. Python爬虫入门之初遇lxml库
  15. 关于微信旧版本扫码登陆,旧版的登陆限制的一些经验
  16. Google Earth Engine(GEE)计算雷达植被指数RVI
  17. php文章排序,php实现的常见排序算法汇总
  18. 阿里云弹性云桌面、传统PC和虚拟桌面VDI区别对比
  19. 线性代数的本质——学习笔记
  20. 计算机excel表格教程高级筛选6,excel表格中的高级筛选要怎么操作?

热门文章

  1. CleanMyMac v4.10.1支持Monterey 12.x
  2. Macs Fan Control Pro for mac(电脑风扇控制软件)v1.5.10中文
  3. Mac Dock截图的小技巧
  4. 快捷笔记应用Side Notes Mac
  5. 随便玩玩Django--输入网址生成二维码
  6. 路透:在美投资遇阻 中国科技资金转向以色列
  7. 我如何学习:不要停下学习的脚步
  8. 通信工程领域当前的主流技术及其社会需求调查报告
  9. linux 忘记原来的myql的root的密码
  10. 【老孙随笔】求职,不要无的放矢