18572|33

64

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何用WinDbg或Waston Dump Viewer分析WinCE机台上抓取的Dump File问题 [复制链接]

    基于ARM+WinCE 5.0的机台上有概率性的发生Data Abort,直接采用加入Debug信息逐步缩小范围的方法太费时间,所以在Image中加入了ErrorReporting的功能。
    机器发生了Data Abort后,将dump file拷贝出来,就是那个后缀名为kdmp的文件。在PC机上使用WinDbg进行分析的时候可以找到发生Data Abort的类型,但是无法在定位出源代码中的位置。
    第一次使用WinDbg工具,很多东西不是很清楚,希望大家在这里讨论一下,在线等待大家的回答。
    只要参与就有分相送,^_^,如果分数不够还可以再加!

最新回复

MARK 如此好的贴  详情 回复 发表于 2010-2-7 10:49
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
顶。
要把对应的.pdb文件放进去的。不然只显示Handle值,没有具体的Thread Name。
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
没有用过,帮顶

学习这种调试方法
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
自己顶一下,大家快来抢分呀!!!
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

5
 
我自己顶一下,要不就沉到底了
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 1 楼 gsymichael 的回复:
顶。
要把对应的.pdb文件放进去的。不然只显示Handle值,没有具体的Thread Name。


pdb包含symbol信息, 拷贝pdb文件到kdmp同目录.
有PB吗,有的话,打开kdmp, attach上去,然后双击callstack, 就可以看到源码了

至于WinDBG, 没有试过, 关注下
不过你可以试试在File-->Symbol Search Path 和 File-->Source Search Path设置看看
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
自己加一个SEH捕获一下异常,把crash信息输出,再利用编译器生成的map文件定位崩溃代码区间,我一直这样用感觉不错
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

8
 
没用过,我向来用串口调试
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 7 楼 xdkui 的回复:
引用 1 楼 gsymichael 的回复:
顶。
要把对应的.pdb文件放进去的。不然只显示Handle值,没有具体的Thread Name。


pdb包含symbol信息, 拷贝pdb文件到kdmp同目录.
有PB吗,有的话,打开kdmp, attach上去,然后双击callstack, 就可以看到源码了

至于WinDBG, 没有试过, 关注下
不过你可以试试在File-->Symbol Search Path 和 File-->Source Search Path设置看看

谢谢了,呵呵
今天太晚了,明天我试一下。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

10
 
WinDbg还真没在CE下用过这个东东,一般都是打LOG来DEBUG:)帮顶!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

11
 
气死人了,什么破eeworld啊,打了长长的一大篇,提交不成功,白打了。晕死!
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

12
 
我再回复一下吧。希望能发上去。[这回学乖了,在编辑器中输好了才Copy过来的]
我在PC机上使用过WinDbg,但不知这种方法是否适用CE系统,LZ帮我验证一下吧,呵呵:
步骤如下
1. 在Release版本中添加调试信息。
2. 在程序中加入ErrorReporting崩溃处理代码,生成崩溃文件。
3. 打开WinDbg,设置好符号路径,然后打开崩溃文件。使用!analyze -v命令来分析崩溃时的情况。
   一般也就是看看崩溃线程的堆栈情况。
   
   注意:在生成崩溃文件时可以指定生成文件的大小,生成的文件越大,包含的调试信息越多,如局部变量的值等等,
   这个可以根据需要进行设置。不知道WinCe系统中是否支持这种设置。
   
   WinDbg的使用方法在安装完毕后有一个帮助文件,看看应该就差不多了,着重要看看它的符号设置方法。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

13
 
终于发上去了,如果记得把验证的结果回复到这个帖子中来哦:)

俺下个月也要进入WinCE做开发了。呵呵、、
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 8 楼 navi_dx 的回复:
自己加一个SEH捕获一下异常,把crash信息输出,再利用编译器生成的map文件定位崩溃代码区间,我一直这样用感觉不错

自己加一个SEH捕获一下异常?这个到底怎么做?我经验尚浅,请前辈明示。
这个帖子不错,一定要顶起来。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 2 楼 91program 的回复:
没有用过,帮顶

学习这种调试方法



同样学习一下,看来高手很多啊!
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 14 楼 pilixuanke 的回复:
我再回复一下吧。希望能发上去。[这回学乖了,在编辑器中输好了才Copy过来的]
我在PC机上使用过WinDbg,但不知这种方法是否适用CE系统,LZ帮我验证一下吧,呵呵:
步骤如下
1. 在Release版本中添加调试信息。
2. 在程序中加入ErrorReporting崩溃处理代码,生成崩溃文件。
3. 打开WinDbg,设置好符号路径,然后打开崩溃文件。使用!analyze -v命令来分析崩溃时的情况。
  一般也就是看看崩溃线程的堆栈情况。
  
  …

经验之谈呀,我也觉得是自己没有把符号给整好导致没有办法分析最终的log信息
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

17
 
引用 11 楼 BEYONDMA 的回复:
WinDbg还真没在CE下用过这个东东,一般都是打LOG来DEBUG:)帮顶!

^_^,我也这么用
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

18
 
引用 8 楼 navi_dx 的回复:
自己加一个SEH捕获一下异常,把crash信息输出,再利用编译器生成的map文件定位崩溃代码区间,我一直这样用感觉不错

是呀,这样确实是挺简单,也比较方便,我也经常这么用。
最近想找一种更加简单,更加准确的方法,因为代码量比较大的时候,这样做起来就比较复杂了。
^_^,共同学习了,等有了进展就给大家加分,只要参与就有分,分不够可以再加!
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(初级)

19
 
引用 19 楼 guopeixin 的回复:
引用 11 楼 BEYONDMA 的回复:
WinDbg还真没在CE下用过这个东东,一般都是打LOG来DEBUG:)帮顶!

^_^,我也这么用


你现在也没有搞定?
不少人使用:自己加一个SEH捕获一下异常,把crash信息输出,再利用编译器生成的map文件定位崩溃代码区间,我一直这样用感觉不错
的方法。我还没有尝试过呢。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

20
 
SEH结构化异常处理
看过这样的代码,我也没用过,顶一下。
__try
{
}
__finally
{
}
之类。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表