谈在Debug和Release模式下输出调试信息 .
来源:互联网 发布:iterator java 编辑:程序博客网 时间:2024/03/28 21:23
1、输出宏和函数
①使用TRACE,其语法类似printf,用于向Output窗口输出信息。该宏仅仅在程序的Debug版本中出现,在release版本中无效。
②使用printf时,在Debug和Release版本下都会输出信息。
③使用TRACE和printf时,既可以输出字符串,也可以输出格式化信息,如(以TRACE为例)
TRACE(_T("This is a test\n"));
TRACE(_T("This is NO.%d test\n"), cnt);
④使用OutputDebugString输出字符串信息,其函数原型如下:
VOID OutputDebugString(LPCTSTR lpOutputString); // lpOutputString: pointer to string to be displayed
该函数在Debug和Release版本中都有效,但是只能输出字符串,如果想输出变量值,需要自己先格式化。例如:
CString str;
str.Format(_T("This is NO.%d test\n"), cnt);
OutputDebugString(str);
⑤在Windows CE下,还可以使用RETAILMSG宏来输出格式化信息。如下所示:
RETAILMSG(TRUE, (_T("This is NO.%d test\n"), cnt));
2、查看输出的调试信息
对于Debug版本的程序,通常是在VC IDE环境中运行,因此这时可以直接通过IDE的Output窗口来查看输出的调试信息。
对于Release版本的程序,可以通过DebugView工具来查看系统DEBUGER中的调试信息,这时不要在IDE环境中运行程序,需要直接运行.exe文件。这个工具在网上可以下载。
对于Windows CE下的Release版本程序,可以通过串口线将其调试串口接到电脑上,然后在DNW软件中查看输出信息。
最后,还想提一下另外两个很有用的宏:ASSERT和VERIFY。前者只在Debug下有效,后者在Debug和Release都有效。通常ASSERT用的比较多,但是需要注意两点:
第一,是在条件为假时输出诊断信息;
第二,由于ASSERT只在Debug版本下有效,因此千万别在其条件中执行函数,我曾经就犯过错。如
ASSERT( func() == 3);
这条语句是执行func()函数,同时判断其返回值是否是3,如果不是3说明程序有错,则输出诊断信息。在Debug下一切正常,但是在Release下,由于ASSERT无效,导致func()函数没有执行。
- 谈在Debug和Release模式下输出调试信息
- 谈在Debug和Release模式下输出调试信息
- 谈在Debug和Release模式下输出调试信息 .
- 谈在Debug和Release模式下输出调试信息
- Release下调试信息输出
- 让 IPhone 程序的调试信息只在 debug 模式下输出
- IPhone 程序的调试信息只在 debug 模式下输出
- 让 IPhone 程序的调试信息只在 debug 模式下输出
- Debug模式应用程序输出Debug调试信息
- volatile在debug和release模式下的意义
- BOOL 值在 debug 和 release 模式下初始化不一样!!!
- Opencv在Release和Debug不同模式下的配置
- BOOL 值在 debug 和 release 模式下初始化不一样!!!
- 调试Release模式下遇到的问题 - Debug和Release的差异。
- Debug和Release下调试的问题
- 让 IPhone 程序的调试信息只在 debug 模式下输出 转自:hager的博客
- vs在release下调试和debug下调试的区别
- Release和Debug模式的区别以及Opencv在Release和Debug不同模式下的配置
- 数据库事务、游标
- Hibernate的HQL总结
- Wince 6.0 教程---第五课.更改任意文件夹路径
- 转:闷声发大财:网上调查公司Qualtrics背后的故事
- 第四课、XIP与HIVE
- 谈在Debug和Release模式下输出调试信息 .
- gis海量资源网盘提供VIP账号无广告高速下载 (更新更多资源)
- Linux常用命令大全
- Wi-Fi signals enable gesture recognition throughout entire home
- Android 浏览器开发中的小技巧,webview的复制功能
- 单例模式
- gnu binutils
- win7开机后欢迎界面过后要等一段时间黑屏才进入界面这是怎么回事!
- 内部碎片 && 外部碎片