欢迎来到天天文库
浏览记录
ID:24418737
大小:51.50 KB
页数:4页
时间:2018-11-14
《wince中的debug zone调试》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、WinCE中的DebugZone调试 在dpCurSettings={ TEXT(PCIBUS),{ TEXT(Errors),TEXT(结构,该结构在Dbgapi.h中定义,所以在定义dpCurSettings的时候还需要包含这个头文件,该结构定义如下:typedefstruct_DBGPARAM{ ask; //调试域的掩码}DBGPARAM,*LPDBGPARAM; 在上面的例子中可以看到,第一个是模块的名字,叫PCIBUS。而后定义了16个域的名字,其中只用到了7个域,剩下的都定义为Undefined了。最后一个数字为域的掩码,表示当前
2、哪个域是被激活的,0x20表示只有第6个域是被激活的。从上面的例子还可以看出,前7个域是有意义的,而且按照顺序分别对应1到7。下面针对这些域需要定义相应Debug调试的宏定义:#defineDBGZONE_ERROR 1#defineDBGZONE_ 5#defineDBGZONE_LOADORDER 6#defineDBGZONE_RESOURCE 7 上述宏定义对应在dpCurSettings中的7个域,然后就可以在打印信息的时候,通过这些宏定义来对应相应的调试域了。例如:DevKeys
3、)); break; } else { DEBUGMSG(DBGZONE_SG(DBGZONE_LOADORDER,(LloadinaBuilder中的CEDebugZones来调试,在VS2005的菜单中选择Target,然后选择CEDebugZones,如图:12下一页——感谢阅读这篇文章,.., 然后会出现一个DebugZones的窗口,在窗口弹出以后,它可能会花一点时间来收集当前支持DebugZone的模块,如下图: 该图只是一个例子,左边显示了可调试的模块,选择serial_SMDK2410.dll这个模块,就是S3C2410的串口驱动模块。在
4、右侧可以看到各个调试域及名字,用户可以根据需要来选择打开和关闭相应的调试域,最后点击Apply和OK就可以了。 当然,还有其他的方法来修改调试域,一种方法是使用TargetControl中的zo命令来修改,TargetControl将在以后介绍。还有一种方法就是通过SetDbgZone(..)函数来修改。定义如下: BOOLSetDbgZone(DlpdbgTgt) dod: 调试模块的句柄 baseptr: 设置为NULL zone: 新的调试域掩码 lpdbgTgt: 返回新的DBGPARAM结构 上面对DebugZone的定义,使
5、用以及调试作了大致的介绍,按照上面的步骤可以给一个模块添加调试域,注册调试域并在系统运行以后随时更改调试域,其根本目的无非是帮助我们来调试模块和分析问题。一般情况下,调试域只在Debug模式下使用,但是也可以在Release模式下使用。但是有些地方需要修改,首先前面已经介绍过Debug模式下的打印用DEBUGMSG,而Release模式下的打印应该使用RETAILMSG函数。所以在Release模式下,打印函数应该改为RETAILMSG函数。还有在注册调试域的时候,不能再使用DEBUGREGISTER(..)函数,而是应该改用RETAILREGISTERZONES(..)函数
6、。上一页12——感谢阅读这篇文章,..,
此文档下载收益归作者所有