前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内核timer crash debug思路

内核timer crash debug思路

原创
作者头像
用户2240372
修改2018-08-04 17:23:08
1.3K0
修改2018-08-04 17:23:08
举报
文章被收录于专栏:haley的分享haley的分享

思路:内核timer有回调函数timer->function,可以由function查到crash的内核模块,找到bug的蛛丝马迹。

ubuntu14 get_next_timer_interrupt处crash

拿到kdump文件,看bt -l

用dis -l 看get_next_timer_interrupt函数

对比kernel源码:

异常代码落在__next_timer_interrupt中的1305行。

应该是内存访问异常,锁定目标是varp->vec + slot的链表访问异常。

由上图,分析得到varp->vec + slot链表的头地址为0xffff88085fa0f2b0

上图所示是timer_list的组织,由hlist链接出来。现在我们从头部开始,挨个查看每个timer

直到

通过timer->function找到定时器的处理函数。

从网上查找tw_timer,发现已经有开发者发现过这个bug:

这个查到是 dccp_time_wait的bug, https://patchwork.kernel.org/patch/8138491/

查了一下ubuntu14的最新内核,已合入了这个补丁。

升级内核解决:

apt-get update apt-get install linux-image-4.4.0-130-generic apt-get install linux-image-extra-4.4.0-130-generic

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档