2022年如何定位WinCE产生DataAbort错误的位置 .pdf
《2022年如何定位WinCE产生DataAbort错误的位置 .pdf》由会员分享,可在线阅读,更多相关《2022年如何定位WinCE产生DataAbort错误的位置 .pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如何定位 WinCE产生 Data Abort错误的位置分类: WinCE 2009-07-02 13:35 887人阅读 评论(0) 收藏 举报在调试 WinCE程序的时候,有时候会碰到Data Abort的异常,系统会在调试控制台输出如下类似信息:Exception Data Abort (4): Thread-Id=03d3000e(pth=83a9e024), Proc-Id=00400002(pprc=81d48308) NK.EXE, VM-active=00fa000a(pprc=83a20ecc) explorer.exe PC=c0883660(s3c2440disp.dll
2、+0 x00003660) RA=a014f780(?+0 xa014f780) SP=d2e8fc58, BVA=00000000对于按 Release 编译的程序,需要一些额外的工作才能找到产生错误的地方,下面描述了如何根据错误提示信息定位错误代码的过程:让编译器产生 map和 cod 文件设置 WINCEMAP和 WINCECOD两个环境变量,然后重新编译整个项目,我是在BAT文件中加入这两行代码:set WINCEMAP=1 set WINCECOD=1计算错误产生的地址错误产生在 s3c2440disp.dll内部,打开文本文件 s3c2440disp.map (与s3c2440di
3、sp.dll在同一目录),在文件头中,Preferred load address is 10000000指出 Rav地址为 0 x10000000, 将其与错误产生的偏移地址0 x00003660相加,得到 Rva+Base地址为 0 x10003660(0 x10000000 + 0 x00003660) 找出错误来自哪个文件哪个函数在 s3c2440disp.map 文件中,根据 Rva+Base地址,得知错误产生于s3c2440disp.obj中的 S3C2440DISP:CursorOff 成员函数内部0001:00002274 ?CursorOnS3C2440DISPQAAXXZ
4、10003274 f s3c2440disp.obj 0001:00002578 ?CursorOffS3C2440DISPQAAXXZ 10003578 f s3c2440disp.obj 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 0001:000026f4 ?SetPointerShapeS3C2440DISPUAAJPAVGPESurf0HHHHZ 100036f4 f s3c2440disp.obj计算错误在函数中
5、的偏移地址CursorOff 函数起始地址为 0 x10003578,错误指令在代码中的偏移为0 xE8(0 x10003660 - 0 x10003578) 找到错误出自哪行代码打开文件 s3c2440disp.cod文件(与 s3c2440disp.obj在同一目录 ),定位到CursorOff 函数偏移 0 xE8处(0 x10003660 - 0 x10003578, 错误地址 - 函数开始地址),即可找到了错误发生的汇编代码和对应的C源代码; 624 : ; 625 : break; ; 626 : ; 627 : ; 628 : ptrLinex * (m_colorDepth 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年如何定位WinCE产生DataAbort错误的位置 2022 如何 定位 WinCE 产生 DataAbort 错误 位置
限制150内