如何调试CoreDll.dll的DataAbort? [英] How to debug DataAbort of CoreDll.dll?

查看:61
本文介绍了如何调试CoreDll.dll的DataAbort?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在DumpRenderTree.exe的过程中使用打印输出日志,喜欢:


   ......


  的printf(QUOT; Log1\\\
");    //第一次打印


   printf(" Log2 \ n");


   .....


但第一行"printf(" Log1 \ n"); "没问题,第二行代码"printf(" Log2 \ n");"失败了。以下是日志:


================================= ============================================


PID:106D006E TID:11970072 PID:106D006E TID:11970072异常'数据中止'(0x4):Thread-Id = 11970072(pth = c0c2ace8),Proc-Id = 106d006e(pprc = c0c2a1c4)'DumpRenderTree。 exe',VM-active = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe'

PC = 4006b1d4(coredll.dll + 0x0005b1d4)RA = 4006b038(coredll.dll + 0x0005b038)SP = 0017d344, BVA = 000003c4

PID:106D006E TID:11970072 PID:106D006E TID:11970072异常'数据中止'(0x4):Thread-Id = 11970072(pth = c0c2ace8),Proc-Id = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe',VM-active = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe'

PC = 4006b1d4(coredll.dll + 0x0005b1d4)RA = 4006b038(coredll.dll + 0x0005b038)SP = 0017cd04,BVA = 000013c3

PID:106D006E TID:11970072 PID:106D006E TID:11970072异常'数据中止'(0x4):Thread-Id = 11970072(pth = c0c2ace8),Proc -Id = 106d006e(pprc = c0c2a1c4)'DumpRen derTree.exe',VM-active = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe'

PC = 4006b1d4(coredll.dll + 0x0005b1d4)RA = 4006b038(coredll.dll + 0x0005b038)SP = 0017c6c4,BVA = 000013c3

PID:106D006E TID:11970072 PID:106D006E TID:11970072异常'数据中止'(0x4):Thread-Id = 11970072(pth = c0c2ace8),Proc-Id = 106d006e (pprc = c0c2a1c4)'DumpRenderTree.exe',VM-active = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe'

PC = 4006b1d4(coredll.dll + 0x0005b1d4)RA = 4006b038(coredll。 dll + 0x0005b038)SP = 0017c084,BVA = 000013c3

PID:106D006E TID:11970072 PID:106D006E TID:11970072异常'数据中止'(0x4):Thread-Id = 11970072(pth = c0c2ace8) ,Proc-Id = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe',VM-active = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe'

PC = 4006b1d4(coredll.dll + 0x0005b1d4) RA = 4006b038(coredll.dll + 0x0005b038)SP = 0017ba44,BVA = 000013c3

PID:106D006E TID:11970072 PID:106D006E TID:11970072异常'数据中止'(0x4):Thread-Id = 1 1970072(pth = c0c2ace8),Proc-Id = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe',VM-active = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe'
$
PC = 4006b1d4( coredll.dll + 0x0005b1d4)RA = 4006b038(coredll.dll + 0x0005b038)SP = 0017b404,BVA = 000013c3

PID:106D006E TID:11970072 PID:106D006E TID:11970072异常'数据中止'(0x4 ):Thread-Id = 11970072(pth = c0c2ace8),Proc-Id = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe',VM-active = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe'

PC = 4006b1d4(coredll.dll + 0x0005b1d4)RA = 4006b038(coredll.dll + 0x0005b038)SP = 0017adc4,BVA = 000013c3

PID:106D006E TID:11970072 PID:106D006E TID:11970072异常'数据中止'(0x4):Thread-Id = 11970072(pth = c0c2ace8),Proc-Id = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe',VM-active = 106d006e(pprc = c0c2a1c4)'DumpRenderTree.exe'

PC = 4006b1d4(coredll.dll + 0x0005b1d4)RA = 4006b038(coredll.dll + 0x0005b038)SP = 0017a784,BVA = 000013c3




所以,我的问题是如何调试这个问题?


旧的NTG5HUH设备没问题。我无法获得有关修改新设备或系统软件的信息。我有一个旧的k.coredll.map文件。


  k.coredll


 时间戳是df2b99ab       &NBSP ;                  


 首选加载地址为10000000


..............


  0001:00059f1c       _real_flsbuf2              1005af1c f   k.coredll_ALL:_filbuf.obj


  0001:0005a0ac       UnhandledExceptionFilter的   1005b0ac f   k.coredll_ALL:unhandled.obj

  0001:0005a128       __C_ExecuteExceptionFilter 1005b128     k.coredll_ALL:jmpuwind.obj

  0001:0005a128       __C_ExecuteTerminationHandler 1005b128 f   k.coredll_ALL:jmpuwind.obj

  0001:0005a168       __raise_int_divide_by_zero 1005b168 f   k.coredll_ALL:diverr.obj



我得到的位置是函数__C_ExecuteTerminationHandler< by PC = 4006b1d4(coredll.dll + 0x0005b1d4) >并呼叫 < by RA = 4006b038(coredll.dll + 0x0005b038)>






Jerry.Liu SDET

解决方案

只需浏览此博客


http ://geekswithblogs.net/BruceEitman/archive/2008/05/19/windows-ce--finding-the-cause-of-a-data-abort.aspx


HTTP: //geekswithblogs.net/BruceEitman/archive/2008/06/02/platform-b​​uilder-find-the-source-of-a-data-abort-an.aspx


I use print output log in a process of DumpRenderTree.exe, likes:

   ......

   printf("Log1\n");    // this first print

   printf("Log2\n");

   .....

but first line "printf("Log1\n"); " is OK, and 2nd line code "printf("Log2\n");" is failed. the the following is log:

=============================================================================

PID:106D006E TID:11970072 PID:106D006E TID:11970072 Exception 'Data Abort' (0x4): Thread-Id=11970072(pth=c0c2ace8), Proc-Id=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe', VM-active=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe'
PC=4006b1d4(coredll.dll+0x0005b1d4) RA=4006b038(coredll.dll+0x0005b038) SP=0017d344, BVA=000003c4
PID:106D006E TID:11970072 PID:106D006E TID:11970072 Exception 'Data Abort' (0x4): Thread-Id=11970072(pth=c0c2ace8), Proc-Id=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe', VM-active=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe'
PC=4006b1d4(coredll.dll+0x0005b1d4) RA=4006b038(coredll.dll+0x0005b038) SP=0017cd04, BVA=000013c3
PID:106D006E TID:11970072 PID:106D006E TID:11970072 Exception 'Data Abort' (0x4): Thread-Id=11970072(pth=c0c2ace8), Proc-Id=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe', VM-active=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe'
PC=4006b1d4(coredll.dll+0x0005b1d4) RA=4006b038(coredll.dll+0x0005b038) SP=0017c6c4, BVA=000013c3
PID:106D006E TID:11970072 PID:106D006E TID:11970072 Exception 'Data Abort' (0x4): Thread-Id=11970072(pth=c0c2ace8), Proc-Id=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe', VM-active=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe'
PC=4006b1d4(coredll.dll+0x0005b1d4) RA=4006b038(coredll.dll+0x0005b038) SP=0017c084, BVA=000013c3
PID:106D006E TID:11970072 PID:106D006E TID:11970072 Exception 'Data Abort' (0x4): Thread-Id=11970072(pth=c0c2ace8), Proc-Id=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe', VM-active=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe'
PC=4006b1d4(coredll.dll+0x0005b1d4) RA=4006b038(coredll.dll+0x0005b038) SP=0017ba44, BVA=000013c3
PID:106D006E TID:11970072 PID:106D006E TID:11970072 Exception 'Data Abort' (0x4): Thread-Id=11970072(pth=c0c2ace8), Proc-Id=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe', VM-active=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe'
PC=4006b1d4(coredll.dll+0x0005b1d4) RA=4006b038(coredll.dll+0x0005b038) SP=0017b404, BVA=000013c3
PID:106D006E TID:11970072 PID:106D006E TID:11970072 Exception 'Data Abort' (0x4): Thread-Id=11970072(pth=c0c2ace8), Proc-Id=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe', VM-active=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe'
PC=4006b1d4(coredll.dll+0x0005b1d4) RA=4006b038(coredll.dll+0x0005b038) SP=0017adc4, BVA=000013c3
PID:106D006E TID:11970072 PID:106D006E TID:11970072 Exception 'Data Abort' (0x4): Thread-Id=11970072(pth=c0c2ace8), Proc-Id=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe', VM-active=106d006e(pprc=c0c2a1c4) 'DumpRenderTree.exe'
PC=4006b1d4(coredll.dll+0x0005b1d4) RA=4006b038(coredll.dll+0x0005b038) SP=0017a784, BVA=000013c3

So, my question is how to debug this issue?

Old NTG5HUH device is OK. and I can't get information about modifying of new device or system software. and I got a old k.coredll.map file.

 k.coredll

 Timestamp is df2b99ab                          

 Preferred load address is 10000000

..............

 0001:00059f1c       _real_flsbuf2              1005af1c f   k.coredll_ALL:_filbuf.obj

 0001:0005a0ac       UnhandledExceptionFilter   1005b0ac f   k.coredll_ALL:unhandled.obj
 0001:0005a128       __C_ExecuteExceptionFilter 1005b128     k.coredll_ALL:jmpuwind.obj
 0001:0005a128       __C_ExecuteTerminationHandler 1005b128 f   k.coredll_ALL:jmpuwind.obj
 0001:0005a168       __raise_int_divide_by_zero 1005b168 f   k.coredll_ALL:diverr.obj

And I got location is in function __C_ExecuteTerminationHandler <by PC=4006b1d4(coredll.dll+0x0005b1d4)> and called < by RA=4006b038(coredll.dll+0x0005b038)>


Jerry.Liu SDET

解决方案

just go through this blog

http://geekswithblogs.net/BruceEitman/archive/2008/05/19/windows-ce--finding-the-cause-of-a-data-abort.aspx

http://geekswithblogs.net/BruceEitman/archive/2008/06/02/platform-builder-find-the-source-of-a-data-abort-an.aspx


这篇关于如何调试CoreDll.dll的DataAbort?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆