首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何快速定位 Linux Panic 出错代码

问题描述 内核调试中最常见一个问题是:内核Panic后,如何快速定位出错代码? 就是这样一个常见问题,面试过大部分同学都未能很好地回答,这里希望能够做很彻底地解答。...那么有了地址以后,就可以定位该地址落在哪个函数区间内,然后找到该函数,进而通过计算偏移,定位代码。...先通过函数名定位所在函数,然后通过偏移定位代码。 相应工具有addr2line, gdb, objdump等,这几个工具在How to read a Linux kernel panic?...所以如果要调试代码,必须确保调试符号已经编译内核中,不然,回调里头打印是一堆地址,根本看不到符号,那么对于上面提到情况二而言,将无法准确定位问题。...addr2line 如果出错内核跟当前需要调试内核一致,而且编译器等都一致,那么可以通过addr2line直接获取到出错代码,假设出错地址为0019594c: $ addr2line -e vmlinux_with_debug_info

76540

定位Oops具体代码

看,gdb直接就告诉你在哪个文件、哪一了。            ...: TIPS            如果在lkml或bugzilla上看到一个Oops,而自己不能重现,那就只能反汇编以"Code:"开始。...这样可以尝试定位            源代码中。            注意,Oops中Code:,会把导致Oops第一条指令,也就是EIP第一个字节, 用尖括号括起来。...[64]这65个元素, 其中出错那个操作码 == arry[43] */ #include #include const char array[] ="\x6b\xc0\xe8\x2e...补充: 为了使汇编代码和C代码更好对应起来, Linux内核Kbuild子系统提供了这样一个功能: 任何一个C文件都可以单独编译成汇编文件,例如: make path/to/the/sourcefile.s

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    36.Linux驱动调试-根据oops定位错误代码

    (PS:若不配置,也可以直接通过栈来分析函数调用过程,在下章会分析:http://www.cnblogs.com/lifexy/p/8011966.html) 2.2而有些内核环境不同,opps也可能不会打印出上面的...+0x78中 2.5然后将驱动生成反汇编: arm-linux-objdump -D 26th_segmentfault.ko >26th_segmentfault.dis //反汇编 2.6打开反汇编...而0x56000050是个物理地址,在linux眼中便是个非法地址,所以出错 并找到出错地方位于first_drv_open ()函数下: 3.若发生错误驱动位于内核地址值时 3.1还是以26th_segmentfault.c...为例,首先加入内核: #cp 26th_segmentfault.c /linux-2.6.22.6/drivers/char/ //将有问题驱动复制字符驱动目录下 #vi Makefile...: # arm-none-linux-gnueabi-objdump -D vmlinux > vmlinux.dis 将整个内核反汇编, vmlinux:未压缩内核 3.4 vi vmlinux.dis

    2.8K80

    问与答113:如何定位指定列并插入公式到最后一

    引言:本文整理自vbaexpress.com论坛,供有兴趣朋友学习参考。 Q:我有多个工作表,每个工作表中都有一个Date列,但其位置都不相同,如下图1至图3所示。 ? 图1 ? 图2 ?...例如,对上图1所示工作表,拆分成如下图4所示。 ? 图4 如何定位Date列,然后在其右侧插入4列,并使用公式在各列输入相应内容?...A:可以使用一段简单代码,如下: Sub WHATIWANTITTODO() Dim r As Range Set r = Cells.Find("Date") r.Offset...代码使用Find方法在工作表中查找内容为“Date”单元格。 2. 在该单元格右侧插入4列。 3. 使用Array函数分别在每列开头输入相应内容。 4. 使用RC样式输入公式。 5....初学者注意体会Resize属性、Offset属性使用。

    1.8K30

    Linux系统编程】操作系统概念、定位 及系统调用

    所以就需要另一种软件——操作系统。 那下面我们就来谈一谈操作系统 1. 操作系统概念和定位 首先要知道: 操作系统是一种软件,这个我们之前也提到过。...)提供一个良好执行环境 定位: 在整个计算机软硬件架构中,操作系统定位是:一款纯正“搞管理”软件 那既然操作系统是搞管理,那第一个问题,我们该如何理解这里”管理“ 2....比如有些操作系统上有人就基于系统调用接口写了图形化界面,有的操作系统设计者就基于系统调用接口写了shell和工具集,还有比如C语言里面的一些库函数或者Linux一些命令,我们可以直接使用,但他底层可能就是去调用对应系统调用去完成对应操作...这就是我们这里要了解一个——局部性原理 局部性原理(Principle of Locality)是计算机系统设计和优化重要原则,它基于观察在计算机程序中,数据和指令访问往往具有一定局部性特征...因此,通过预取相邻数据项和指令高速缓存中,可以利用空间局部性减少对主存访问次数,提高访问效率。 6. 计算机体系结构 那通过我们前面的铺垫和讲解,我们最终就得出了计算机整个体系结构:

    15810

    Android仿微信朋友圈点击评论自动定位相关功能

    最近闲来无事,随便看看各种UI实现代码 本文涉及相关代码已经上传到 https://github.com/r17171709/android_demo/tree/master/WeixinEditText...打开你微信朋友圈,点击评论,你就会发现有一个小细节:文本输入框高度恰好定位这条信息底部位置 ?...图中红色部分为键盘展现之前某条信息评论区所在位置;蓝色部分为键盘,当键盘打开时候,我们需要将红色部分移动到黄色位置。...但是还有几个小问题,如果是点击最后一的话,会因为滚动空间不足而不能实现相同效果,并且按返回键时候,键盘先消失,然后再按一次之后Dialog才消失。...总结 以上所述是小编给大家介绍Android仿微信朋友圈点击评论自动定位相关功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

    1.5K60

    Linux从零精通》基础与常用操作

    :当前目录,“..”上一级目录 ~:用户所在家目录 绝对路径和相对路径 例: 绝对路径:cd /root 相对路径:cd /root 后输入 cd web 进入 /root/web Linux...开头l:连接文件 开头b:设备文件,提供储存接口设备 开头c:设备文件,提供串行接口设备--键盘,鼠标 0c63e5f8d772f6e284c2bc64dcddc8fb.png 文件操作 复制文件...:cp file1 file2(复制多个文件目录:cp file1 file2 file3 dir⒠) 移动文件:mv file1 file2⒜(移动多个文件目录:mv file1 file2 file3...root账户删除文件会询问,此时需要用rm -f来强制删除不会询问 普通账户删除自己创建文件没有提示可以直接rm 为linux通配符,若要删除tmp下所有文件可以rm -f /tmp/ 若要删除...-l:只显示 Vim编辑器 //vi编辑器是linux自带 //vim需要后期安装,vim和vi操作一样,学会vim后vi也就会了 //vim是vi增强版,vim除了有颜色标记其他也没什么了

    96730

    Linux生产环境CPU使用率100%,教你定位具体函数

    在我们项目部署上线时候,我们是不是会经常去Linux服务器上查查服务器CPU使用率,或者是运维经常会盯LinuxCPU使用率,发现监控报了60%一般就会报警了,到了100%那就惨啦,做我开发我们如果自己程序运行时...今天我就将我们线上之前有个100%CPU给大家讲解下,然后教大家怎么去定位然后发现具体函数,然后去修改它就行了 01 什么是CPU使用率 CPU 使用率,就是除了空闲时间外其他时间占总 CPU...02 怎么找出100%问题 我们在上面先大致了解了CPU使用率是什么,下面我就来教大家怎么定位造成CPU100%具体函数。...1 用ssh客户端登录到你服务器 运行 top 命令,然后按一下键盘上 1 键,查看你Linux服务器上每个CPU使用率情况,如下图 ?...现在,我这个CPU是正常,就没有给重新放出100%进程了,定位方法时一样

    1.6K20

    把3000代码重构成15牛逼操作!!!

    如果你认为能够戳中您G点,那么请随手点个赞。 把三千代码重构为15 那年我刚毕业,进了现在这个公司。公司是搞数据中心环境监控,里面充斥着嵌入式、精密空调、总线、RFID概念,我一个都不懂。...看到没有,就是当年最最流行三层架构产物,对于刚出茅庐毛头小子来说,这是多么专业文件头注释,还有反射也就算了,这构造函数还能静态,还能私有的?那时刚接触这么高大上代码我,瞬间给跪了!...每增加一个表,除了要改接口、要改DAL、要改BLL之外,还得在这个工厂类添加一个方法,真真是累到手抽筋,即使有当时公司了G工给我推荐神器——动软代码生成器,这粘贴复制几遍,也是让我感觉异常繁琐,...唯一让我担忧是,我进公司时候,帮忙整理公司申请软件著作权都是需要代码量,根据代码多少来评估软件大小,万一老板知道了我非但没有帮公司增加代码量,还减少了,会不会立即把我开掉?...在你决定动手发明一个轮子之前,先搜索一下现成解决方案。你还可以CodeProject、GitHub之类网站搜索一下。

    66430

    把3000代码重构成15牛逼操作!!!

    如果你认为这是一个标题党,那么我真诚恳请你耐心把文章第一部分读完,然后再下结论。如果你认为能够戳中您G点,那么请随手点个赞。 把3000代码重构为15 那年我刚毕业,进了现在这个公司。...看到没有,就是当年最最流行三层架构产物,对于刚出茅庐毛头小子来说,这是多么专业文件头注释,还有反射也就算了,这构造函数还能静态,还能私有的?那时刚接触这么高大上代码我,瞬间给跪了!...每增加一个表,除了要改接口、要改DAL、要改BLL之外,还得在这个工厂类添加一个方法,真真是累到手抽筋,即使有当时公司了G工给我推荐神器——动软代码生成器,这粘贴复制几遍,也是让我感觉异常繁琐,...唯一让我担忧是,我进公司时候,帮忙整理公司申请软件著作权都是需要代码量,根据代码多少来评估软件大小,万一老板知道了我非但没有帮公司增加代码量,还减少了,会不会立即把我开掉?...在你决定动手发明一个轮子之前,先搜索一下现成解决方案。你还可以CodeProject、GitHub之类网站搜索一下。

    51910

    Linux从入门精通】之操作文件命令

    个人主页:天寒雨落博客_CSDN博客-C,CSDN竞赛,python领域博主  特别标注:仅为自己学习记录笔记,方便复习和加深记忆,仅供借鉴参考!...:Can't open file for writing) 就说明可能你目录错误,你需要从你当前目录出发来输入vi 文件目录地址 8.浏览文件 cat 文件名 举例 查看刚才修改文件test1...test1 执行结果  cat用于显示文件内容 more一般用于要显示内容会超过一个画面长度情况,按空格显示下一个画面,回车显示下一内容 less和more类似,只不过多了一个可以用...pgup,pgdn键控制 9.拷贝文件 cp 文件1 文件2 (将文件1内容复制文件2)  举例 将test1内容复制test4 代码 cp test1 test4 执行结果 10.压缩文件...-type f(将当前目录及其子目录中所有文件列出) 执行结果 各位学习linux朋友可以联系我,互相讨论,一起进步!!! +✏️+⭐️是对博主最大鼓励与支持!!!

    79420

    Linux 删除文本中重复

    在进行文本处理时候,我们经常遇到要删除重复情况。那怎么解决呢? 下面就是三种常见方法? 第一,用sort+uniq,注意,单纯uniq是不行。...shell> sort -k2n file | uniq 这里我做了个简单测试,当file中重复不再一起时候,uniq将服务删除所有的重复。...经过排序后,所有相同行都在相邻,因此unqi可以正常删除重复。 第二,用sort+awk命令,注意,单纯awk同样不行,原因同上。...P; D' 最后附一个必须先用sort排序文本例子,当然,这个需要用sort排序原因是很简单,就是后面算法设计时候“局部性”,相同可能分散出现在不同区域,一旦有新相同行出现,那么前面的已经出现记录就被覆盖了...参考推荐: 删除文本中重复(sort+uniq/awk/sed)

    8.6K20

    我是这么学习Selenium元素定位操作

    写在前面 相信很多做web自动化测试同学都深有体会,其本质也就是通过操作页面元素对象来模拟用户操作行为,那么首先我们先找到这些元素对象,然后才能进行一系列操作。...点击框中左上角箭头图标,移动鼠标左面页头欢迎你,Refain,就可以自动定位欢迎你,Refain位置处HTML代码了,查看到欢迎你,Refain属性,我们可以清楚看到有id属性。 ?...("Refain")); 使用xpath定位 一般做自动化的人都很喜欢用一种方式,还接着刚才百度输入框例子,用xpath定位,关于xpath详细定位操作可以参考我之前文章《selenium自动化之...同样这种定位方式也特别受欢迎,这回用css定位,关于css详细定位操作可以参考我之前文章《selenium之css定位小结》 WebElement element = driver.findElement...,关于selenium元素定位操作就介绍完了,还请各位同学多去学习、实践!

    72220

    阿里问题定位神器 Arthas 操作定位线上BUG,超给力!

    下面记录下当时详细定位&解决流程(其实解决很简单,关键在于怎么定位并找到解决问题方法) 定位过程 分析代码 渠道系统是一个常见spring-boot web工程,使用了集成tomcat。...主机延迟是无问题,接下来查看Nginx渠道系统网络。...经查阅资料,linux curl是默认开启http keep-alive(Keep-Alive介绍可以参考我另一篇文章)。...打问题点找到了,那怎么定位是什么导致问题呢,又如何解决呢? 继续trace吧,细化具体代码块或者内容。...能观察范围为:返回值、抛出异常、入参,通过编写 OGNL 表达式进行对应变量查看。

    1.3K30

    linux命令操作

    1、日常操作命令 查看当前所在工作目录 pwd **查看当前系统时间 ** date 查看有谁在线(哪些人登陆到了服务器) who 查看当前在线 last 查看最近登陆历史记录 2、文件系统操作...echo "i miss you,my baby" > somefile.2 利用重定向“>”功能,将一条指令输出结果写入一个文件中,会覆盖原文件内容 echo "huangxiaoming...在该行最前面插入 gg 直接跳到文件 G 直接跳到文件末行 dd 删除,如果 5dd ,则一次性删除光标后5 yy 复制当前行, 复制多行,则 3yy,...:查找文件中出现you,并定位第一个找到地方,按n可以定位下一个匹配位置(按N定位到上一个) 3、文件权限操作 linux文件权限描述格式解读 drwxr-xr-x (也可以用二进制表示...A上操作: %%首先生成密钥对 ssh-keygen (提示时,直接回车即可) %%再将A自己公钥拷贝并追加到B授权列表文件authorized_keys中 ssh-copy-id

    1K20
    领券