POPTEST老李谈Debug和Release的区别(c#) 1
POPTEST老李谈Debug和Release的区别(c#)
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。
关于Debug和Release的区别之讨论本文主要包含如下内容:
1. Debug 和 Release 编译方式的本质区别
2. 哪些情况下 Release 版会出错
2. 怎样“调试” Release 版的程序
一、Debug 和 Release 编译方式的本质区别
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程
序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度
上都是最优的,以便用户很好地使用。
Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项
(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Rele
ase 版错误,在此不讨论)
Debug 版本:
/MDd /MLd 或 /MTd 使用 Debug runtime library(调试版本的运行时刻函数库)
/Od 关闭优化开关
/D "_DEBUG" 相当于 #define _DEBUG,打开编译调试代码开关(主要针对
assert函数)
/ZI 创建 Edit and continue(编辑继续)数据库,这样在调试过
程中如果修改了源代码不需重新编译
/GZ 可以帮助捕获内存错误
/Gm 打开最小化重链接开关,减少链接时间
Release 版本:
/MD /ML 或 /MT 使用发布版本的运行时刻函数库
/O1 或 /O2 优化开关,使程序最小或最快
/D "NDEBUG" 关闭条件编译调试代码开关(即不编译assert函数)
/GF 合并重复的字符串,并将字符串常量放到只读内存,防止
被修改
实际上,Debug 和 Release 并没有本质的界限,他们只是一组编译选项的集合,编译
器只是按照预定的选项行动。事实上,我们甚至可以修改这些选项,从而得到优化过的调
试版本或是带跟踪语句的发布版本。
转载于:https://www.cnblogs.com/poptest/p/5161029.html
POPTEST老李谈Debug和Release的区别(c#) 1相关推荐
- POPTEST老李谈JVM、JRE、JDK、java ee sdk with jdk区别
POPTEST老李谈JVM.JRE.JDK.java ee sdk with jdk区别 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作 ...
- Visual Studio Debug和Release的区别及obj的作用
一.Debug和Release的区别 1.Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员 ...
- 关于VS项目平台的x86,x64,Any CPU以及Debug和Release的区别
相信对于很多刚接触打包程序的同志来说,关于x86,x64,Any CPU这三个项目平台,以及解决方案配置Debug和Release有什么区别?这个问题一定有许多的困惑,甚至不乏一些已经工作了很久的老程 ...
- Debug和release版本区别 原码反码补码的转换及存储
#define _CRT_SECURE_NO_WARNINGS 1 //Debug和release版本区别(VS2019版) //例子 #include<stdio.h> //int m ...
- debug和release的区别
1.Debug和Release有什么区别,为什么要使用Release版本! 2.怎么把Debug转成Release Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至 数M ...
- 深入了解Debug和Release的区别
原文地址:https://blog.csdn.net/sky___ice/article/details/8993885 一: Bin 目录用来存放编译的结果,bin是二进制binrary的英文缩写, ...
- 关于bin和obj文件夹。debug 和release的区别(转)
关于bin和obj文件夹. 楼主hcaihao(影子男孩)2002-05-29 20:04:24 在 .NET技术 / C# 提问 VS.Net会生成bin和obj文件夹以及它们下面的Debug和Re ...
- Visual Studio中Debug和Release的区别
在Visual Studio中,生成应用程序的时候有2种模式:Debug和Release.两者之间如何取舍呢? 假设有这么简单的一段代码,在主程序中调用方法M1,M1方法调用M2方法,M2方法调用M3 ...
- 切身体会,debug与release的区别
不知道大家用vs打包的时候会不会特意改为release版本后打包. 我最近改了一个程序,打包的时候没注意,用debug打的包,结果现场反馈说对图像进行处理的时候比上一个版本的程序慢一些.我就感 ...
最新文章
- 如何在30前成为“富翁”?
- laravel5.6 Session
- photoshop CS不能打字,出现死机等现象的解决办法!!
- C语言编程如何快速注释?
- Apache-Tomcat的安装配置
- 免费的数字图书馆_不仅是书籍:您当地图书馆可能提供的所有免费数字资料
- 您应该保持联系的十大高级Java对话
- linux系统信息查看命令
- 让jquery构造出类
- 云计算 雾计算 边缘计算的区别
- 彩虹仿优云宝模板,最新彩虹代shua网仿优云宝发卡网模板
- 用postman测试post接口的设置步骤,参数为json
- 本周大新闻|Elbit推飞行员专属AR头盔,苹果第二代MR将分高低配
- 解决炉石传说战网无法更新问题
- Cocoa -- 添加和移除开机启动项
- 现在各种云建站,挑两个给大家分析一下。
- IT界CICD新词-Dummy
- 算法笔记(11)逻辑回归算法及Python代码实现
- html鼠标的点击事件失效,为什么鼠标悬停事件不起作用呢?
- AIUI的技能工作室使用