AQtime学习资料(4)

2019-04-23 18:58

c. Open the Configuration Properties | Linker | Debugging property

page and set the Generate Debug Info option to Yes (/DEBUG).

5. Click OK to save the settings and then rebuild the application. Once finished,

your application will be ready for profiling in AQtime.

四、Release版与Debug的区别:

Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。

Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不讨论)

1.Debug 版本

参数 含义 : ? ? ? ? ? ?

/MDd /MLd 或 /MTd 使用 Debug runtime library (调试版本的运行时刻函数库) /Od 关闭优化开关

/D \相当于 #define _DEBUG,打开编译调试代码开关 (主要针对assert函数)

/ZI 创建 Edit and continue(编辑继续)数据库,这样在调试过程中如果修改了源代码不需重新编译

/GZ 可以帮助捕获内存错误

/Gm 打开最小化重链接开关, 减少链接时间

2.Release 版本

参数 含义 : ?

/MD /ML 或 /MT 使用发布版本的运行时刻函数库

? ? ? /O1 或 /O2 优化开关,使程序最小或最快

/D \关闭条件编译调试代码开关 (即不编译assert函数) /GF 合并重复的字符串, 并将字符串常量放到只读内存, 防止被修改

实际上,Debug 和 Release 并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。事实上,我们甚至可以修改这些选项,从而得到优化过的调试版本或是带跟踪语句的发布版本。

3.Debug和Release对AQtime的直接影响:

测试部分代码: ……..

void PrintMessage( CString strMessage ) {

AfxMessageBox( strMessage ); }

void CDebugSettingDlg::OnBnClickedButton1() {

CString strTemp;

strTemp = \PrintMessage( strTemp );

// TODO: Add your control notification handler code here }

void CDebugSettingDlg::OnBnClickedButton2() {

CString strTemp;

strTemp = \PrintMessage( strTemp );

// TODO: Add your control notification handler code here }

1)在AQtime中添加release版待测程序:

2)在AQtime中添加debug版待测程序:

PrintMessage不是DebugSettingDlg类的成员函数,只是被OnbnClickedButton1和

OnbnClickedButton1所调用。在release模式下,PrintMessage是看不到的;但在debug模式下,PrintMessage不但可以看到,而且还可以记录其执行信息。 NOTE:

如果在编译Release模式时,将Optimization改为其他模式而非Maximize Speed,那么PrintMessage就可以看到了。

1).Disabled:

2).Minimize Size(最小体积):

3).Maximize Speed(最高速度):


AQtime学习资料(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:11-050职业技能鉴定指导书-变电站值班员(2)-高级技师

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: