Release版本如何单步调试

应用场景:

今天有个同事说,怎么MFC工程只能够在debug模式下单步调试,在release模式下,设置单步断点,有些可以调试,有些不可以调试,直接跳过,还有一个问题就是调试出来的结果有些都是乱码。在debug模式下,完全正常。

修改方案:

1)属性》》配置属性》》C/C++>>优化,优化选项:禁用(/Od)

优化之后的代码,有些断点调试的代码已经被编译器优化了,无法调试

2) 属性》》配置属性》》链接器》》 调试,生成调试信息:(是/DEBUG),生成程序数据库文件:$(TargetDir)$(TargetName).pdb

3) 属性》》 配置属性》》C/C++》》输出信息,启用浏览信息:包含所有浏览信息(/FR)

时间: 2024-10-11 21:32:25

Release版本如何单步调试的相关文章

VS2008 如何将Release版本设置可以调试的DEBUG版本

只需设置三个部分: 项目->属性->C/C++->General->Debug Information Format->Program Database for Edit & Continue (/ZI) 项目->属性->C/C++->Optimization->Optimization->Disabled(/Od) 项目->属性->Linker->Debugging->Generate Debug Info-&g

release版本单步调试设置

场景 debug模式下自动选择已禁用 (/Od):release模式下自动选择 使速度最大化 (/O2) . 这种速度最大化,会导致Release版本调试出现有些代码被精简掉,有些代码变量在前后之间 不一致的问题,例如传递指针,指针的地址可能会发生改变.而且在调用第三方库的时候,是没有办法获取到debug版本下的动态或者静态库,因此只能够选择release版本,本章的主要内容是如何设置在release版本下进行调试 分析 Release模式下的设置主要是应用于软件的发布,是不携带任何的调试信息,

【转】Debug 运行正常,Release版本不能正常运行

http://blog.csdn.net/ruifangcui7758/archive/2010/10/18/5948611.aspx引言 如果在您的开发过程中遇到了常见的错误,或许您的Release版本不能正常运行而Debug版本运行无误,那么我推荐您阅读本文:因为并非如您想象的那样,Release版本可以保证您的应用程序可以象Debug版本一样运行. 如果您在开发阶段完成之后或者在开发进行一段时间之内从来没有进行过Release版本测试,然而当您测试的时候却发现问题,那么请看我们的调试规则1

更简单的调试Release版本Optimize code的.NET程序集

由于JIT的优化在调试Release版本程序集往往没有足够的跟踪信息,比如查看clrstack发现PARAMETERS:= <no data>状态. 在程序运行目录下创建一个[程序集名称].ini文件,比如:MyLibrary.dll => MyLibrary.ini. [.NET Framework Debugging Control] GenerateTrackingInfo=1 AllowOptimize=0 更简单的调试Release版本Optimize code的.NET程序集

使用ffmepg的lib库调试,debug版本下调试无问题,但release版本会出现跑飞的现象

如题(“使用ffmepg的lib库调试,debug版本下调试无问题,但release版本会出现跑飞的现象”). 今天使用ffmpeg进行宿放和颜色格式转换,很简单的代码,却折腾了我一天,这里说来就气啊,全是一顿的蛋疼,这里记下来,防止以后再蛋疼.呵呵 开始的时候,我以为是我的代码问题,然后我把我的代码很多地方都注释了,发现debug没问题,release还是不断跑飞,啥原因? 于是我从新建了一个测试工程,很简单,就调用一句话. 整个工程的代码如下: 1 // ffmpegtest.cpp : 定

Debug与Release版本区别

Debug与Release版本区别 Debug版本就是调试版本,Visual C++ 6.0默认的就是Debug版本.在Debug版本中,可以使用单步执行.跟踪等功能,但其生成的可执行文件比较大,代码运行比较慢.Release版本就是发行版本,其运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能.     还有一点,Release版本的exe文件链接的目标是标准的MFC DLL(Use MFC in a shared or static dll).比如MFC42.DLL.这些DLL在

如何定位Release 版本中程序崩溃的位置 ---利用map文件 拦截windows崩溃函数

1       案例描述 作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭.请与您的供应商联系.呵呵,这句微软的“名言”,恐怕是程序员最怕见也最常见的东西了. 在一个大型软件的测试过程中,初期出现程序崩溃似乎成了不可避免的事.其实测试中出现程序崩溃并不可怕,反而是测试的成功.作为开发的我们更需要关心的是程序中的哪个函数或哪一行导致了系统崩溃,这样才能有针对性的进行改正. 本文描述了自己总结的几种定位崩溃的办法.

Debug与Release版本的区别详解

原文链接 Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动.如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来.当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_ABC等.习惯上,我们仍然更愿意使用VC已经定义好的名称.     Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M).至于是否需要DLL支持,主要看你采用的编译选项.如果是基于ATL的,则D

release版本和debug版本

程序一般分为Debug版本和Release版本,Debug版本用于内部调试,Release版本发行给用户使用 Release和Debug有什么不同 Release版称为发行版,Debug版称为调试版. Debug中可以单步执行.跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢.Release版运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能. Release的exe文件链接的是标准的MFC DLL(Use MFC in a shared or static dll).这些DL