[    1.454380] BUG: unable to handle kernel NULL pointer dereference at 00000000000005d0
[    1.474020] IP: [<ffffffff8144375b>] DSFW_rx_handle+0x1bb/0x370
[    1.487902] PGD 139c25067 PUD 135301067 PMD 0
[    1.497467] Oops: 0000 [#1] SMP
[    1.503342] Modules linked in:
[    1.508646] CPU: 0 PID: 3 Comm: ksoftirqd/0 Not tainted 3.10.52-waf #133
[    1.524811] Hardware name: To be filled by O.E.M. To be filled by O.E.M./To be filled by O.E.M., BIOS 4.6.4 01/06/2012
[    1.552962] task: ffff88013b0c0ba0 ti: ffff88013b0d4000 task.ti: ffff88013b0d4000
[    1.571471] RIP: 0010:[<ffffffff8144375b>]  [<ffffffff8144375b>] DSFW_rx_handle+0x1bb/0x370
[    1.592629] RSP: 0018:ffff88013b0d5c98  EFLAGS: 00010202
[    1.604640] RAX: 00000000fffffffe RBX: ffff8801353c4d00 RCX: 00000000001978fd
[    1.622107] RDX: 0000000000000043 RSI: ffff88012bb00180 RDI: 00000000000005a8
[    1.639575] RBP: 00000000000005a8 R08: 0000000000016d20 R09: 0000000000000000
[    1.657043] R10: 0000000000000000 R11: ffff88011d1e2e2a R12: 0000000000000001
[    1.674511] R13: 0000000000020063 R14: ffff8801378ea3d0 R15: 000000000000003e
[    1.691981] FS:  0000000000000000(0000) GS:ffff88013fa00000(0000) knlGS:0000000000000000
[    1.712308] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    1.725618] CR2: 00000000000005d0 CR3: 00000001353c6000 CR4: 00000000000407b0
[    1.743085] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[    1.760553] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[    1.778019] Stack:
[    1.780151]  ffff8801378ea3e0 ffffc90001cc3988 ffff8801353c4d00 ffffffff812b87f6
[    1.798609]  ffff88013b008900 ffff880137e87d00 ffff880137edc680 ffff88013b0d5d64
[    1.817064]  ffffc90001cc39b0 0001397200000100 ffff880137edc000 ffffffff814435a0
[    1.835520] Call Trace:
[    1.838954]  [<ffffffff812b87f6>] ? e1000e_clean_rx_irq_nff+0x256/0xbc0
[    1.854861]  [<ffffffff814435a0>] ? DSFW_fif_recv+0x70/0x70
[    1.867650]  [<ffffffff812b91ce>] ? e1000e_poll+0x6e/0x1c0
[    1.880179]  [<ffffffff81389a68>] ? net_rx_action+0x88/0x170
[    1.893228]  [<ffffffff81037f46>] ? __do_softirq+0xd6/0x290
[    1.906015]  [<ffffffff81038129>] ? run_ksoftirqd+0x29/0x40
[    1.918806]  [<ffffffff810591d3>] ? smpboot_thread_fn+0x103/0x190
[    1.933156]  [<ffffffff810590d0>] ? lg_global_unlock+0x60/0x60
[    1.946723]  [<ffffffff81052088>] ? kthread+0xb8/0xc0
[    1.957954]  [<ffffffff81051fd0>] ? __kthread_parkme+0x80/0x80
[    1.971522]  [<ffffffff814e121c>] ? ret_from_fork+0x7c/0xb0
[    1.984311]  [<ffffffff81051fd0>] ? __kthread_parkme+0x80/0x80
[    1.997877] Code: 00 48 98 48 c1 e0 06 01 90 f0 98 9d 81 83 80 f4 98 9d 81 01 48 85 ed 75 0f eb 4d 0f 1f 44 00 00 48 85 db 74 43 48 89 dd 48 89 ef <48> 8b 5d 28 e8 6c fd ff ff 85 c0 74 e8 8b 85 d4 00 00 00 83 f8
[    2.053478] RIP  [<ffffffff8144375b>] DSFW_rx_handle+0x1bb/0x370
[    2.067594]  RSP <ffff88013b0d5c98>
[    2.074145] CR2: 00000000000005d0

例如
[    2.053478] RIP  [<ffffffff8144375b>] DSFW_rx_handle+0x1bb/0x370

ffffffff8144375b 是指令在内存中的虚拟地址
DSFW_rx_handle  是函数(symbol 名)
0x1bb/0x370 ,0x370 是这个函数编译成机器码后的长度,0x1bb是ffffffff8144375b这条指令在相对于
DSFW_rx_handle 函数入口的偏移

gdb定位

# gdb vmlinux
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/wesley/dvlp/WAF/trunk/build/linux-3.10.52/vmlinux...done.
(gdb) l *DSFW_rx_handle+0x1bb/0x370

gdb 定位 oops call trace的更多相关文章

  1. 【Z】段错误Segment Fault定位,即core dump文件与gdb定位

    使用C++开发系统有时会出现段错误,即Segment Fault.此类错误程序直接崩溃,通常没有任何有用信息输出,很难定位bug,因而无从解决问题.今天我们介绍core dump文件,并使用gdb进行 ...

  2. linux设备驱动程序第四部分:从如何定位oops对代码的调试方法,驱动线

    在一个我们谈到了如何编写一个简单的字符设备驱动程序,我们不是神,编写肯定会失败的代码,在这个过程中,我们需要继续写代码调试.在普通c应用.我们经常使用printf输出信息.或者使用gdb要调试程序,然 ...

  3. linux设备驱动第四篇:从如何定位oops的代码行谈驱动调试方法

    上一篇我们大概聊了如何写一个简单的字符设备驱动,我们不是神,写代码肯定会出现问题,我们需要在编写代码的过程中不断调试.在普通的c应用程序中,我们经常使用printf来输出信息,或者使用gdb来调试程序 ...

  4. oops call trace 解析

    Call Trace: [  221.634988]  [<ffffffff8103fbc7>] ? kmld_pte_lookup+0x17/0x60 [  221.635016]  [ ...

  5. 驱动: oops

    linux驱动调试--段错误之oops信息分析 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29401328&id= ...

  6. Understanding a Kernel Oops!

    Understanding a kernel panic and doing the forensics to trace the bug is considered a hacker's job. ...

  7. [fw]Understanding a Kernel Oops!

    An “Oops” is what the kernel throws at us when it finds something faulty, or an exception, in the ke ...

  8. 使用gdb调试Python进程

    使用gdb调试Python进程 有时我们会想调试一个正在运行的Python进程,或者一个Python进程的coredump.例如现在遇到一个mod_wsgi的进程僵死了,不接受请求,想看看究竟是运行到 ...

  9. Oracle 11g R2性能优化 SQL TRACE

    作为Oracle官方自带的一种基本性能诊断工具,SQL Trace可以用来评估当前正在运行的SQL语句的效率,同时为该语句生成统计信息等,并保存这些信息到指定路径下的跟踪文件(trace)当中.SQL ...

随机推荐

  1. 在selenium2.0中使用selenium1.0的API

    Selenium2.0中使用WeDriver API对页面进行操作,它最大的优点是不需要安装一个selenium server就可以运行,但是对页面进行操作不如selenium1.0的Selenium ...

  2. MongoDB环境准备

    1.安装MongoDB MongoDB的安装非常简单,只需要将下载的MongoDB的压缩文件解压到任意目录,并将其中的bin目录加入到系统的path环境变量中即可 2.启动MongoDB 在启动Mon ...

  3. 实体类的枚举属性--原来支持枚举类型这么简单,没有EF5.0也可以

    通常,我们都是在业务层和界面层使用枚举类型,这能够为我们编程带来便利,但在数据访问层,不使用枚举类型,因为很多数据库都不支持,比如我们现在用的SqlServer2008就不支持枚举类型的列,用的时候也 ...

  4. Spring4学习笔记 - 配置Bean - 自动装配 关系 作用域 引用外部属性文件

    1 Autowire自动装配 1.1 使用:只需在<bean>中使用autowire元素 <bean id="student" class="com.k ...

  5. Wami Map Project – 开源的 OSM API 服务

    Wami 地图项目把 OSM 数据分享给所有的人,很容易使用.他们利用 MongoDB 的潜力进行大数据管理来实现从 OSM 数据来源搜索相关的数据.它们的 API 使人们有可能检索不同格式的 POI ...

  6. hybird之web动态换肤实现

    前言 最近在重构个hybird(原生的壳包着Web页面)的UI框架,进行到了做换肤功能的阶段,所以这里是我思考的解决的方法. 预想 目前实现换肤的功能无非就两种做法. 1.写几个皮肤文件,然后切换使用 ...

  7. picasso总结

    public class UMDocApplication extends Application { private Picasso picasso = null; /**获取Picasso对象** ...

  8. Android Activity和Fragment的转场动画

    Android Activity和Fragment的转场动画 Activity转场动画 Activity的转场动画是通过overridePendingTransition(int enterAnim, ...

  9. PCM(Pulse-code modulation)脉冲编码调制

    在音频处理中,我们会经常听到PCM数据,那么什么是PCM数据呢? PCM数据就是模拟信号经过PCM以后的数字信号,PCM就是把音频信号由模拟信号(时间连续,取值连续)转为数字信号(时间离散,取值离散) ...

  10. 【iOS】使用safari对webview进行调试

    [iOS]使用safari对webview进行调试 在web开发的过程中,抓包.调试页面样式.查看请求头是很常用的技巧.其实在iOS开发中,这些技巧也能用(无论是模拟器还是真机),不过我们需要用到ma ...