vc程序调试技巧备忘录

vc程序调试技巧备忘录

ID:1771594

大小:29.00 KB

页数:3页

时间:2017-11-13

vc程序调试技巧备忘录_第1页
vc程序调试技巧备忘录_第2页
vc程序调试技巧备忘录_第3页
资源描述:

《vc程序调试技巧备忘录》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、vc程序调试技巧备忘录目的:方便程序的调试,可控制的查看运行信息、运行状态、运行日志,各种错误信息以及尽可能的暴露程序隐藏的错误,并能帮助程序员及时发现错误的原因及错误出处。调试约定:1、我们这里讨论的都是程序在直接运行时的各种运行信息,不讨论debug模式下的单步运行调试。2、我们约定调试者查看信息用2种方式,一种是使用debugview程序查看运行时信息,一种是使用文件方式查看程序运行日志3、我们约定程序员查看正常数据信息,逻辑信息都使用trace,由于trace在release模式下无法运行,因此,我编写了方法crfcwatch::watch,与trace完全兼容,但

2、可在r模式下将数据显示到debugview中。我们约定对数据的有效性检查使用assert,这里我同样定义了一个新的宏watch_assert来兼容assert,当表达式为false时,该宏会做以下工作:d模式下发生错误时,将信息等级,当前文件名,当前行数以及当前表达式输出到debugview中,并显示assert警告,release模式下,该宏中的代码依然执行,并在发生错误时,将当前文件名,当前行数以及表达式信息写到debugview中。5、在使用上述的watch方法和watch_assert宏时,要求用户输入信息等级,信息等级表示了当前信息的重要性,下表是对等级的分类,目

3、前只定义了偶数级别,奇数级暂时保留,用户可自行安排,同时支持浮点型,比如1.2,4.5,程序内部只是简单的对数值的大小进行判断,大与显示等级值的代码均将被执行,这个数据在程序启动的时候从命令行输入(暂定,也可考虑用文件方式),程序启动后,用户需要使用crfcwatch::initwatch方法来获得从外部传入的显示等级,不小与这个等级值的代码将被执行,比如命令行输入的是”test.exedv5”(d为命令,5为参数值),程序在运行时将执行5-10级的代码。5以下的调试信息将不被显示。7级暂保留6级主要数据信息,显示重要的数据,比如传送的数据,界面级的数据5级暂保留4级内

4、部数据,比如协议包数据3级暂保留2级临时信息1级暂保留6、对命令行参数的说明:/dv[nlevel==11][logfilepath==null],比如”dv4”,表示只显示不小于等级值为4的信息,而”dv1log.txt”,则在显示不小于等级值为1的信息的基础上,同时将信息写入到日志文件log.txt中,如果不输入命令行参数,则所有调试信息都将不被显示(当然也不会写文件)。7、对逻辑型函数的编写约定:首先我对逻辑型函数说个简单的说明,比如说方法senddatatodb,看函数名大家知道是什么意思吧,发送某种数据到数据库,一般大多程序员使用void或bool作为返回值,

5、这里约定使用cstring作为返回值(暂定),如果正确,返回空字符串,错误时,则返回错误信息描述。8、对计算型函数的编写约定:(暂保留)9、由于debugview支持远程调试,所以,使用本dll的程序也将得到远程调试的支持。具体使用方法请参考debugview的帮助文件。10、强烈建议使用者在使用以上函数或宏的时候,先自己定义一个宏来使用,这样可大大提高程序的可修改性。设计说明:设计一个类crfcwatch如下:备注:以下所有的显示都只显示到trace窗口和debugview中只支持文本形式的文件,不支持2进制的文件,主要功能是描述程序运行的逻辑信息,而非运行时的数据信息无

6、显示字符串信息以及错误等级在trace窗口以及debugview窗口voidwatchint(floatflevel,intndata)flevel:当前信息等级ndata:int型数据信息显示字符串信息以及错误等级在trace窗口以及debugview窗口voidwatchfloat(floatflevel,floatfdata)flevel:当前信息等级fdata:float型数据信息(显示4位小数点)显示字符串信息以及错误等级在trace窗口以及debugview窗口voidwatchbuf(floatnlflevel,byte*pbuf,intnlength)fle

7、vel:当前信息等级pbuf:缓冲区指针nlength:缓冲区长度显示缓冲区信息(以16进制方式显示)以及错误等级在trace窗口以及debugview窗口,不支持写日志文件macro:watch_assert(expr)用户要检验的表达式无debug模式下发生错误时,将信息等级,当前文件名,当前行数以及当前表达式输出到debugview中,将信息等级,当前文件全路径,当前行数以及表达式写到trace中,并显示assert警告,release模式下,该宏中的代码依然执行,并在发生错误时,将当前文件名,当前行数以及表

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。