gdb 定位 oops call trace
[ 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的更多相关文章
- 【Z】段错误Segment Fault定位,即core dump文件与gdb定位
使用C++开发系统有时会出现段错误,即Segment Fault.此类错误程序直接崩溃,通常没有任何有用信息输出,很难定位bug,因而无从解决问题.今天我们介绍core dump文件,并使用gdb进行 ...
- linux设备驱动程序第四部分:从如何定位oops对代码的调试方法,驱动线
在一个我们谈到了如何编写一个简单的字符设备驱动程序,我们不是神,编写肯定会失败的代码,在这个过程中,我们需要继续写代码调试.在普通c应用.我们经常使用printf输出信息.或者使用gdb要调试程序,然 ...
- linux设备驱动第四篇:从如何定位oops的代码行谈驱动调试方法
上一篇我们大概聊了如何写一个简单的字符设备驱动,我们不是神,写代码肯定会出现问题,我们需要在编写代码的过程中不断调试.在普通的c应用程序中,我们经常使用printf来输出信息,或者使用gdb来调试程序 ...
- oops call trace 解析
Call Trace: [ 221.634988] [<ffffffff8103fbc7>] ? kmld_pte_lookup+0x17/0x60 [ 221.635016] [ ...
- 驱动: oops
linux驱动调试--段错误之oops信息分析 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29401328&id= ...
- Understanding a Kernel Oops!
Understanding a kernel panic and doing the forensics to trace the bug is considered a hacker's job. ...
- [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 ...
- 使用gdb调试Python进程
使用gdb调试Python进程 有时我们会想调试一个正在运行的Python进程,或者一个Python进程的coredump.例如现在遇到一个mod_wsgi的进程僵死了,不接受请求,想看看究竟是运行到 ...
- Oracle 11g R2性能优化 SQL TRACE
作为Oracle官方自带的一种基本性能诊断工具,SQL Trace可以用来评估当前正在运行的SQL语句的效率,同时为该语句生成统计信息等,并保存这些信息到指定路径下的跟踪文件(trace)当中.SQL ...
随机推荐
- 解决WindowsServer 2008 R2 未注册版一个小时自动强制关机
仅用来学习交流,请大家购买正版,尊重正版版权. 安装了win2008R2,试了很多激活方法,终于激活后,不知道什么原因,过了一段时间后,每隔一段时间就自动关机,查了一下,发现是 wlms.exe在作祟 ...
- 10款免费的响应式 WordPress 主题下载
响应式和现代设计风格的 WordPress 主题与能够非常灵活的适应所有设备.而高级主题能够更大可能性的轻松定制.所有的主题是完全响应式的,您可以从主题选项中禁用/启用响应模式.下面这个列表收集了10 ...
- 闭包和this
一.闭包 最开始理解闭包是在一个函数内部定义一个函数,可以在外面的环境里进行调用.现在对于闭包的理解是利用函数来保存作用域内的对象. 理解闭包首先要理解执行上下文,变量对象,活动对象,作用域链.因为执 ...
- TortoiseSVN使用教程
一.下载安装文件: 图1.1 安装顺序:1.VisualSVN-Server-2.6.5.msi:2.TortoiseSVN-1.8.2.24708-win32-svn-1.8.3.msi:3.Lan ...
- php强制转换类型和CMS远程管理插件的危险
远程管理插件是十分受WordPress站点管理员欢迎的工具,它们允许用户同时对多个站点执行相同的操作,如,更新到最新的发行版或安装插件.然而,为了实现这些操作,客户端插件需要赋予远程用户很大的权限.因 ...
- Day Tips:ForceDeleteSite
最近遇到一个奇怪的问题,如下图: 试了各种删除方式都不行. 谷歌了一下发现需要使用如下代码删除. SPWebApplication w = SPWebApplication.L ...
- Android NDK之JNI陷阱
背景: 最近一个月一直在做移植库的工作,将c代码到share library移植到Android平台.这就涉及到Android NDK(native develop kit)内容.这里只想记录下JNI ...
- AES加密解密
AES简介 美国国家标准技术研究所在2001年发布了高级加密标准(AES).AES是一个对称分组密码算法,旨在取代DES成为广泛使用的标准. 根据使用的密码长度,AES最常见的有3种密钥方案,用以适应 ...
- OC 内存泄露 自动释放池
花絮:看到下面的代码就想起这么一个调侃: 一个老程序员,功成名就,金盆洗手不在写代码后,决定练练书法.提笔思索良久后在纸上写下:Hello world! /********************** ...
- 使用eclipse创建spring mvc web工程并部署
创建maven工程