免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: humjb_1983
打印 上一主题 下一主题

[实践] Crash工具实战-变量解析 [复制链接]

论坛徽章:
10
戌狗
日期:2013-10-17 09:43:0215-16赛季CBA联赛之广东
日期:2018-02-05 11:22:1215-16赛季CBA联赛之八一
日期:2016-07-04 12:26:1815-16赛季CBA联赛之青岛
日期:2016-06-08 11:15:4115-16赛季CBA联赛之辽宁
日期:2016-04-05 10:10:1415-16赛季CBA联赛之辽宁
日期:2016-03-11 11:11:48酉鸡
日期:2014-12-18 14:35:48狮子座
日期:2014-02-20 10:14:07寅虎
日期:2013-12-02 13:48:2915-16赛季CBA联赛之广夏
日期:2018-03-21 08:51:10
11 [报告]
发表于 2014-07-18 10:47 |只看该作者
humjb_1983 发表于 2014-07-18 10:33
首先,网络的链路状态从物理上保证。
其次,kdump在捕获到panic后,会kexec执行一个新的capture内核,其 ...

了解,多谢!以前只是了解kdump,从没有在板子上实现过,值得尝试下。

论坛徽章:
0
12 [报告]
发表于 2014-07-18 11:13 |只看该作者
多谢分享。好精!过段时间我也来写个kdump是如何实现的~~

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
13 [报告]
发表于 2014-07-18 11:16 |只看该作者
njuzhyf 发表于 2014-07-18 11:13
多谢分享。好精!过段时间我也来写个kdump是如何实现的~~

期待分享!!!!

论坛徽章:
0
14 [报告]
发表于 2014-07-18 13:20 |只看该作者
gdb 不是都支持反向调试了吗?    还是不能倒推 得到  底层函数调用时的寄存器值?

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
15 [报告]
发表于 2014-07-18 13:48 |只看该作者
hmsghnh 发表于 2014-07-18 13:20
gdb 不是都支持反向调试了吗?    还是不能倒推 得到  底层函数调用时的寄存器值?

不知你说的反向调试具体是什么意思?
其实主要是介绍一种思路,在crash中,使用bt -F <pid>实际是能进行部分符号的自动替换的,会有一些用处,但不能解决所有的问题,所有自己通过分析代码和反汇编在栈或寄存器中寻找是比较可靠的。

论坛徽章:
0
16 [报告]
发表于 2014-07-23 09:57 |只看该作者
我是说reverse-continue等命令,那个是需要事先record了才行的。coredump的分析时候应该是不能往后执行。

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
17 [报告]
发表于 2014-07-23 10:19 |只看该作者
但是,如果需要解析的局部变量位于中间流程,且使用寄存器保存,且不能在最后一级函数执行时的进程上下文中体现,那么此类局部变量就无法解析了。。

我这正好用的是arm芯片,局部变量都是用寄存器存放的,每次用crash分析的时候如果函数过大,中间的局部变量的值有时候无法确定,这是最大的困惑
另外有时候编译器会做优化,把一些static的函数当成inline函数链接,这样的函数反汇编出来之后,很蛋疼
vmcore可以动态调试吗?谁了解这块说说呗

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
18 [报告]
发表于 2014-07-23 18:03 |只看该作者
super皮波 发表于 2014-07-23 10:19
但是,如果需要解析的局部变量位于中间流程,且使用寄存器保存,且不能在最后一级函数执行时的进程上下文中 ...

是的~
vmcore动态调试比较困难,可以在当前的运行环境中做最简单的调试,比如看看变量变化之类的,其它估计很难了~

论坛徽章:
0
19 [报告]
发表于 2014-07-24 14:38 |只看该作者
路过,学习了

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
20 [报告]
发表于 2014-08-06 14:42 |只看该作者
回复 18# humjb_1983
请教一个问题,我用的arm芯片,在sysdump文件中找到当前进程的pgd,为什么pgd中对应的内存都是0呢,也就是找不到页面的映射
如下log信息
已经确认的信息,c170c000确实是当前进程的pgd,通过rd读取这段内存地址,里面的数据都是0
我觉得很奇怪,humjb_1983兄是否遇到过这样的问题


pgd = c170c000
[22109.841759] c2 Unable to handle kernel paging request at virtual address bfd87ba4
[22109.841813] c0 [bfd87ba4] *pgd=00000000
[22109.841846] c2 Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[22109.844151] c1 emc_freq: __emc_clk_set flag =  0x000c8410 , version flag = 0x11223368 phy register = 0x00060000
[22109.844332] c1 emc_freq: __emc_clk_set clk = 200 REG_AON_APB_DPLL_CFG = 1210032, PUBL_DLLGCR = 60000
[22109.844342] c1 emc_freq: clk set success, set clk = 200, get clk = 200, sence = 0
[22109.844352] c1 sys timer = 0x2b30a8eb, ap sys count = 0x01516c28
[22109.844362] c1 emc_freq: __emc_clk_set REG_AON_APB_DPLL_CFG = 1210032, PUBL_DLLGCR = 60000
[22109.844369] c1 sprdfb: DMC change freq(1)
[22109.893089] c0 Modules linked in: sprdwl goodix_ts trout_fm mali(O)
[22109.899417] c2 CPU: 2 PID: 16886 Comm: setprop Tainted: G        W  O 3.10.17 #1
[22109.906858] c2 task: d9a0e400 ti: c9f56000 task.ti: c9f56000
[22109.912676] c2 PC is at unmap_single_vma+0x1b8/0x5bc
[22109.917683] c2 LR is at unmap_single_vma+0x190/0x5bc
[22109.922795] c2 pc : [<c0102c28>]    lr : [<c0102c00>]    psr: a00f0013
                  sp : c9f57e08  ip : 0009babd  fp : c9f57e2c
[22109.934951] c2 r10: cfb3b038  r9 : bfd87ba0  r8 : b6f41000
[22109.940482] c2 r7 : c9f57e30  r6 : da2e5318  r5 : 002cd000  r4 : c0dfe8e0
[22109.947417] c2 r3 : 00000001  r2 : c0d6f75c  r1 : 002cd000  r0 : bfd87ba0





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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP