谈在Debug和Release模式下输出调试信息
来源:互联网 发布:淘宝神器软件 编辑:程序博客网 时间:2024/04/24 06:07
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不同模式下的配置
- iOS 程序打包,安装流程
- 修复可疑数据库.
- 日志记录
- 使用dhtmltree动态生成树菜单总结
- 关于文字强制换行 ,自动换行,强制不换行的代码
- 谈在Debug和Release模式下输出调试信息
- C# 学习笔记--控件
- 你所不知道的后台进程SMON功能
- android 测试读取LEB数据的函数
- SharePoint 系列:SharePoint 2010企业应用解决方案
- OpenCV 将矩阵写入Txt文件心得
- linux字符界面sdl开发入门
- UVA 12530 Game of Tiles(二分匹配)#by zh
- unix c文件加锁解锁