免费注册 查看新帖 |

Chinaunix

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

定位Oops的具体代码行 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2008-10-29 23:38 |只看该作者

回复 #20 Godbach 的帖子

怎么还没看懂?

grep hello /proc/module, 是为了知道module被加载到什么地址了; gdb中add-symbol-file /home/sb./hello.ko 0xf2231233,是为了让gdb读取hello.ko文件中的负号表,并且和那个地址对应起来。

你可以执行一下,然后l一下你模块中的函数。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
22 [报告]
发表于 2008-10-30 09:39 |只看该作者
原帖由 albcamus 于 2008-10-29 23:38 发表
怎么还没看懂?

grep hello /proc/module, 是为了知道module被加载到什么地址了; gdb中add-symbol-file /home/sb./hello.ko 0xf2231233,是为了让gdb读取hello.ko文件中的负号表,并且和那个地址对应起来。 ...


呵呵,版主说的真细致,多谢。以前没怎么用过,惭愧。今天再试一下,一定要把oops的分析学会。

论坛徽章:
0
23 [报告]
发表于 2009-06-04 20:42 |只看该作者

回复 #2 hongmy525 的帖子

在不使用gdb的情况下,C和汇编怎么对应起来呢?就像最后一个方法中知道了是“mov    (%ecx),%edx”这条指令引起OOPS,那怎么将它和C语言语句对应起来呢?

论坛徽章:
0
24 [报告]
发表于 2009-06-04 23:30 |只看该作者
原帖由 pengxihan 于 2009-6-4 20:42 发表
在不使用gdb的情况下,C和汇编怎么对应起来呢?就像最后一个方法中知道了是“mov    (%ecx),%edx”这条指令引起OOPS,那怎么将它和C语言语句对应起来呢?



一个简单的办法就是平时就练习反汇编和源代码对照看,熟练以后就能很容易看明白了。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
25 [报告]
发表于 2009-06-05 09:43 |只看该作者
原帖由 Solaris12 于 2009-6-4 23:30 发表



一个简单的办法就是平时就练习反汇编和源代码对照看,熟练以后就能很容易看明白了。


恩,Linux下还是要多了解一下汇编

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
26 [报告]
发表于 2010-01-11 15:45 |只看该作者
晕死,交叉编译的内核模块,搞不定啊

论坛徽章:
0
27 [报告]
发表于 2010-01-11 22:47 |只看该作者
原帖由 W.Z.T 于 2008-6-2 22:08 发表
我cao, 终于知道怎么定位具体的出错代码了, 顶!


论坛徽章:
0
28 [报告]
发表于 2010-01-12 10:38 |只看该作者
最近linuxforum的茶总给gdb加了个功能(在鄙人的强烈要求下),我觉得对low-level调试,非常有用。

disas [/m][/r] <foo>

/m  反汇编时顺便列出C代码
/r  顺便给出opcode (gdb以前只能用x命令查opcode,土的掉渣)

set disassemble-next-line
设置这东西之后,next命令就可以列出下一条汇编语句了。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
29 [报告]
发表于 2010-01-12 10:49 |只看该作者
最近linuxforum的茶总给gdb加了个功能(在鄙人的强烈要求下),我觉得对low-level调试,非常有用。

disas [/m][/r] <foo>

/m  反汇编时顺便列出C代码
/r  顺便给出opcode (gdb以前只能用x命令查opcode,土的掉渣)

set disassemble-next-line
设置这东西之后,next命令就可以列出下一条汇编语句了。

albcamus兄,这个功能集成到gdb的那个版本了?

论坛徽章:
0
30 [报告]
发表于 2011-09-25 22:20 |只看该作者
学习一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP