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

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

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

54840

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

(PS:若不配置,也可以直接通过栈来分析函数调用过程,在下章会分析:http://www.cnblogs.com/lifexy/p/8011966.html) 2.2而有些内核的环境不同,opps也可能不会打印出上面的...kallsyms.txt里,找到pc值bf000078位于26th_segmentfault驱动里first_drv_open()函数下的bf000000+0x78中 2.5然后将驱动生成反汇编: arm-linux-objdump...而0x56000050是个物理地址,在linux眼中便是个非法地址,所以出错 并找到出错地方位于first_drv_open ()函数下: 3.若发生错误的驱动位于内核的地址值时 3.1还是以26th_segmentfault.c...为例,首先加入内核: #cp 26th_segmentfault.c /linux-2.6.22.6/drivers/char/ //将有问题的驱动复制字符驱动目录下 #vi Makefile...                            //y:将该驱动放入内核中 3.2然后make uImage装载新内核后,再运行测试程序,便会打印出opps信息 3.3在内核源码的根目录下通过: # arm-none-linux-gnueabi-objdump

2.7K80
您找到你想要的搜索结果了吗?
是的
没有找到

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

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

1.5K60

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

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

1.5K20

查IP定位精确街道,高精度定位网站分享

这里两个分享高精度查IP定位网站,亲测可以直接准确的定位到你家楼下哦,只要你知道对付的IP就可以定位他人在哪里,再也不怕被骗而找不到对付的ip了,或者是有某方面的需求。...地址1:http://chaipip.com/((推荐,超级精准,两个接口查询哦,一个定位50左右,另一个定位到你家门口。))...地址2:https://www.opengps.cn/Data/IP/LocHighAcc.aspx IP定位查询,多数据精准街道 一个精准查询IP的网站,网站数据来自各大不同网站的IP查询,可以精准具体的街道...,比如无作为自己测试自己的IP位置就可以精准自己的街道, 有些IP的网站也能,包括无作为自己的IP查询页面,不过数据不准确,因为动态拨号的IP是会变化的,就像无作为这种寝室里面每天都会断电的情况,每天会自动拨号...精准定位到你家 更新测试:2017年12月21日11时 地址一的查询IP定位在线工具确实非常的精准,准确五十米以内的误差,就差你没有被查水表了,只需要输入别人的ip信息,在输入验证码就可以查询别人家里的具体位置

86.3K82

Linux Mint 和 Fedora:应该使用哪一个? | Linux 中国 Linux中国

Linux Mint 是一个 为初学者定制的流行的 Linux 发行版,同时为用户提供了与 Windows 类似的体验。...与 Linux Mint 不同,Fedora 并不完全专注于个人(或非开发者)使用。即使他们提供了一个工作站版本,其目标也是开发者和有经验的 Linux 用户。...Linux Mint 19 系列仍然提供了对 32 位系统的支持,你可以使用它 2023 年 4 月。而 Fedora 已经不支持 32 位系统了。...如果你只是想安装一个可以使用多年的 Linux 发行版,而不在乎是不是最新的技术/功能,那么 Linux Mint 是个不错的选择。...从 Ubuntu 的安装体验, 安装软件 的简便性,同时还可以选择 LTS 版本,这让初学者觉得很方便。

3.4K10

人工智能翻译发展哪一步了?

那个时候,周明已经意识,有一天将中文翻译成英文也同样重要,于是他选择了从当时冷门的中英机器翻译开始研究。 彼时,没有互联网,也没有什么参考书,周明自己设计了这套中英翻译系统。...2005年,在时任副院长洪小文的支持下,他们组开始做统计机器翻译系统。...机器翻译进化怎样的程度了,要面临的挑战还有哪些,我们请周明博士一一道来。 《赛先生》:机器翻译好像和人工智能的发展步调挺一致的?...你能够基本上列一个你要做实验的列表,一开始时也不知道哪一种方法最好,就一个个去试,试完了觉得最好的,说不定有些道理,那就拔高,看能不能形成一套整体思路,甚至形成一套理论出来。...因为语音识别在处理方言的时候,处理的不好,所以也影响后面的机器翻译。

2.5K30

不改一代码定位线上性能问题

由于这种也不是业务问题,不能直接定位。所以尝试在测试环境复现,但遗憾的测试环境贼快。 没办法只能硬着头皮上了。...加日志涉及的改动较多而且万一加漏了还有可能定位不到问题。 再一个是改动代码之后还会涉及发版上线。 工具分析 所以最好的方式就是不改动一代码把这个问题分析出来。 这时就需要一个 agent 工具了。...接下来只需要将这个 jar 包配置启动参数中,同时再配置一个配置文件路径即可。 这个配置文件我 copy 官方的解释。...由左右每列分别代表为: 线程ID、方法栈深度、方法编号、耗时(毫秒)。...第一数字为方法的编号。可以通过这个编号去 tprofile.log(明细)中查询每次的耗时情况。 末的数字则是这个方法在源码中最后一的行号。 其实大部分的性能分析都是统计某个方法的平均耗时。

37730

不改一代码定位线上性能问题

尝试解决 由于这种也不是业务问题,不能直接定位。所以尝试在测试环境复现,但遗憾的测试环境贼快。 没办法只能硬着头皮上了。...加日志涉及的改动较多而且万一加漏了还有可能定位不到问题。 再一个是改动代码之后还会涉及发版上线。 工具分析 所以最好的方式就是不改动一代码把这个问题分析出来。 这时就需要一个 agent 工具了。...接下来只需要将这个 jar 包配置启动参数中,同时再配置一个配置文件路径即可。 这个配置文件我 copy 官方的解释。...由左右每列分别代表为: 线程ID、方法栈深度、方法编号、耗时(毫秒)。...第一数字为方法的编号。可以通过这个编号去 tprofile.log(明细)中查询每次的耗时情况。 末的数字则是这个方法在源码中最后一的行号。 其实大部分的性能分析都是统计某个方法的平均耗时。

17940
领券