linux内核定位方法总结1 ECC hung-task和原子操作 反汇编调用栈

Linux内核崩溃定位及解决方法 在 Linux 系统中,内核崩溃(Kernel Panic/Oops)通常由硬件故障、驱动错误或内核代码缺陷引发。通过结合日志分析、崩溃转储调试和硬件检测,可以高效定位内核崩溃根源。对于关键系统,建议定期演练崩溃恢复流程并保持内核更新。 阅读详情

1 CPU支持ECC的话打开ECC,并且在系统异常中断的时候打印出来,因为内存多bit ECC会导致系统异常。

MCHECK_EXCEPTION(0x200, Machine, machine_exception)
    =>static struct cpu_spec __initdata cpu_specs[]
        /* e500v2 */
        .machine_check      = machine_check_e500,
        .platform       = "ppc8548",
        machine_check_e500
            =>unsigned long reason = get_mc_reason(regs);
            =>if (reason & MCSR_BUS_WBERR)
                printk("Bus - Write Data Bus Error\n");
            =>打印regs->nip//出现异常等指令地址
bus有一种可能性是内存出现ECC错误,可以在这里打印内存ECC错误寄存器信息

2 内核的hung task检测;
3 内核的原子操作不能有休眠动作的检测
“BUG: sleeping function called from invalid context at ……”(might_sleep函数说明)
http://blog.youkuaiyun.com/hp0773/article/details/12658501
4 coredump。用户态异常,没有挂接私有信号处理函数,导致coredump,详见《信号处理学习心得》
注意

#ulimit -c //真相
0
#ulimit //假象
ulimited
需要修改 
#ulimit -c unlimited

修改后
再查
#ulimit -c
ulimited

调试程序,会在当前路径生成 core
可以修改路径:
echo /root/core_%p > /proc/sys/kernel/core_pattern
生成的core在/root目录下,后缀是调试程序的进程号

5关于死锁
一次spinlock死锁故障的定位(太经典,收藏!) http://blog.youkuaiyun.com/lqxandroid2012/article/details/53581076
spin_lock浅析【转】 - 张昺华-sky - 博客园 http://www.cnblogs.com/sky-heaven/p/7121582.html =》这个人的博客有很多好文章

驱动程序的调测方法与技巧 http://blog.youkuaiyun.com/lichangc/article/details/43272457

如下文章写得挺好
linux kernel oops linux 异常分析
http://www.cnblogs.com/wahaha02/p/5363793.html

根据PPC反汇编代码分析堆栈内容
http://blog.youkuaiyun.com/lijzheng/article/details/38796525

PowerPC构架应用程序二进制接口(ABI)及堆栈帧详解
http://blog.sina.com.cn/s/blog_70dd16910100ypf2.html

华为OD机试新系统真题 【简单表达式计算】 华为OD机试 新系统真题【简单表达式计算】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【简单表达式计算】题解 阅读详情

相关推荐

开题报告该怎么写

考研即将来临,而一般很多大学都会选择在考研结束之后开始安排选题和开题报考(考研之前一般都不谈,老师也很人性化的,不愿意耽误你的复习) 但无论怎么推迟,我们最终都需要去面对并完成这些任务。 现在我就要教大家该如何写一个完整的开题报告! 准备模板。不同的学校有不同的格式,一般情况你的导师会给你们一个学校的标准格式,这个不用太费心。有了模板我们就可以按照模板的“线索”一步一步填充完成即可! 一般大致格式可谓: 研究背景/论文的目的、背景和意义 我们需要写明选择该题目的...

wuyueweifeng的博客 1095

linux内核调试(一):内核问题的原因

linux内核包括进程管理、内存管理、中断管理、设备驱动、同步机制等各种模块,它们共同运行在一个共享的地址空间中,因此在运行中一旦出现问题,彼此之间可能具有千丝万缕的联系。而且与用户态不同,内核还需要与形形色色的硬件打交道,因此对于某些较为诡异的问题,除了软件以外还可能受到硬件的影响。如由于射线或电磁辐射的原因造成内存中某个bit翻转,或者某些非法总线地址的访问,导致总线挂死等。更进一步,内核作为系统的基础服务提供者,

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1894

别再只当代码阅读器了!手把手教你用Understand的实体定位器和信息浏览器,5分钟精准定位代码逻辑

本文深入解析Understand代码分析工具的高级功能,重点介绍实体定位器和信息浏览器的实战应用。通过5分钟快速定位代码逻辑的技巧,帮助开发者从代码阅读者升级为逻辑侦探,提升大型代码库的分析效率。文章包含过滤搜索、调用链追踪等实用方法,是掌握Understand核心功能的必备指南。

weixin_28745821的博客 292

修改内核printk函数打印等级

前言 内核是很庞大的,其中的打印信息也很多,太多的打印信息会拖慢内核的启动速度,也不利于我们查找有用的打印信息。于是内核有了打印优先级的机制,在用printk()打印信息时需要设置优先级,如果不设置优先级也会有一个默认的优先级。只有打印优先级高于控制台输出的优先级时打印信息才会被打印出来,于是我们可以通过修改控制台输出的优先级来控制打印信息的多少,根据想要查看的打印信息的优先级来修改控制台输出的优先级,这样可以确保能打印出我们想要的打印信息,又尽可能少的打印不需要的信息。 console_printk数

weixin_42031299的博客 4147

大麦网回流票监控实战:如何利用sign参数和cookie实现自动抢票(避坑指南)

本文详细介绍了如何利用sign参数和cookie构建大麦网回流票监控系统,实现自动化抢票。通过分析大麦网票务系统的核心机制、获取关键身份凭证、逆向分析sign签名算法,并构建完整的监控系统,帮助用户高效捕捉回流票机会。文章还提供了实战避坑指南和合法合规的注意事项,确保系统稳定运行且符合平台规则。

weixin_28568819的博客 412

从零到一:揭秘BlueROV2机械爪背后的Pixhawk舵机控制艺术

本文详细解析了如何基于Pixhawk飞控系统为BlueROV2水下机器人构建可靠的舵机控制系统。从硬件选型、ArduSub固件配置到供电安全与故障排除,全面揭秘机械爪背后的控制艺术,为水下机器人爱好者提供实用指南。

ol78901234的博客 242

Linux 内核关掉校验ecc,烧写kernel后出现ECC校验出错的问题

通过观看其他人的问题与处理(s3c-nand: ECC uncorrectable errordetected)。最后通过在uboot下擦除整个nand后重新烧写解决。在擦除之前大家最后先准备后一张可以启动uboot的SD卡。具体方法为:1.uboot命令行中运行下面命令:nand erase 0该命令将删除整块nandflash。2.使用SD启动的uboot重新烧写各个镜像文件。请按照下面的步骤...

weixin_28878287的博客 1368

3D坐标系转换实战:如何用Python快速实现旋转矩阵与平移向量的组合变换

本文详细介绍了如何使用Python和NumPy实现3D坐标系转换中的旋转矩阵与平移向量的组合变换。通过齐次坐标和变换矩阵的数学原理,结合代码示例,帮助开发者高效处理机器人路径规划和计算机视觉中的空间变换问题,并解决实际应用中的常见错误。

pluto的博客 959

调试内核oops

第一种方式,通过make menuconfig开启debug选项,利用gdb定位具体出错位置。 cd /kernel_path //内核代码目录 gdb vmlinux-2.6.30.10 l *0x12345678     字符L,应该回显示出错的地方。 sip地址=12345678 第二种:查看内核的出错信息: tail /var/log/message

醉清风 656

LSTM在交通流量预测中的应用:优化城市交通管理

我们使用的数据集来自某个城市的交通监测系统,包含多个监测点在不同时间段内的交通流量记录。每个监测点的数据包括时间戳、交通流量、天气状况和道路状态等信息。

斌擎科技 1258

【雕爷学编程】一款功能强大、易于使用、适用范围广泛的嵌入式Python解释器:MicroPython

1、语法方面:Micropython与Python语法基本相同,但是由于Micropython是专门为嵌入式设备设计的,因此它对标准Python的功能进行了精简和优化,去掉了一些不必要的功能,同时增加了一些嵌入式系统特有的功能。3、库方面:Micropython与Python完全不同的是,它的标准库并不完全与Python的标准库一致,特别是一些底层库和硬件相关的库。5、丰富的库和工具支持:MicroPython有丰富的库和工具支持,如GPIO控制、网络连接、传感器数据采集等,可满足各种应用需求。

雕爷学编程 5194

Linux 内核关掉校验ecc,我的linux内核移植笔记

我的linux内核移植笔记宿主机:centos5.6目标机:ok6410A交叉编译器:arm-linux-gcc-4.3.2交叉编译器路径:/usr/local/arm/4.3.2要移植的内核版本:linux-2.6.36U-BOOT:u-boot1.1.6文件系统类型: cramfs (目前使用光盘中linux-2.6.36的文件系统)作者:yueye时间:2012-4-4一、获取Linux内核...

weixin_39616339的博客 610

2026年软件测试职业院校技能大赛—ERP管理平台-采购入库模块Bug定位与查找

竞赛对接软件测试相关标准,以“ERP管理平台” 为被测系统,围绕软件测试领域的主流技术及工具,考查选手面 对实际问题的综合分析能力,对测试文档、测试用例的设计能力, 对单元测试、自动化测试、性能测试、接口测试等测试工具及方 法的掌握程度,检验选手团队协作能力、组织规划能力、方法运用能力等。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 195

linux内核bug问题排查过程详细报告

Linux Kernel BUG:soft lockup CPU#1 stuck分析 1.线上内核bug日志 kernel: Deltaway too big! 18428729675200069867 ts=18446743954022816244 write stamp =18014278822746377 kernel:------------[ cut here ]---------...

星.云计算 4289

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Linux内核中oops 错误解析以及问题定位

文档最后有完整的oops输出文件,此处将输出分成多个小块进行分析。

9128

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[monitor] 7. Linux几种内核故障定位方法

Linux系统崩溃有kdump机制来记录,但是由于kdump的文件内容一般很大,在嵌入式系统一般不使用,嵌入式系统一般使用把printk重定位到黑匣子中的方法来记录异常,另外还需要其他的故障检测方法来完善系统所有场景下的异常检测。除了系统的一些通用方法,我们在定位系统死机、复位故障时需要更多的手段来搜集信息,一般嵌入式系统采取的手段有: 1、创建内存、flash黑匣子,把故障点、函数调用栈等信息在复

pwl999的博客 4244

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

linux内核异常定位,ARM Linux内核驱动异常定位方法分析

原创作品,转载请以超链接形式说明出处!最近在搞Atmel 的SAM9x25平台,Linux系统,用于工业设备。这也是我首次参与工业设备的研发。在调试Atmel SAM9x25的Linux串口设备的时候,发现无论是读还是写,都会产生异常。相关的异常信息如下:========================================================================...

weixin_33240461的博客 551

kernel问题定位手段总结

从事kernel底层研发工作,最基础的调试工具就是。

szembed的博客 470

通过/proc查看Linux内核态调用栈来定位问题

前几天碰到一个问题:一个进程运行过程中挂死了,把gdb挂上去之后bt打印的内容为空,后来通过查看 /proc 文件系统,查看程的调用栈,才发现是发消息给内核态程序时,内核态一直没有响应,导致用户态进程挂死。刚好在网上看到一篇描述通过 /proc 文件系统来定位问题的文章,这篇文章讲解得比较清楚,因此尝试翻译出来。原文地址:Peeking into Linux kernel-land using

hintonic的专栏 2万+

慢慢欣赏linux 内核定位手段printk

%pF可打印函数指针的函数名和偏移地址,%pf只打印函数指针的函数名,不打印偏移地址 所以只要内核能够编译和运行,找不到挂接的函数指针都无处遁形。 printk 使用方法 https://haohetao.iteye.com/blog/1147791 ...

shipinsky的博客 360

问题故障定位

1. 背景 有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以,分析问题和踩坑是非常锻炼一个人的成长和提升自我能力。如果我们有一套好的分析工具,那将是事半功倍,能够帮助大家快速定位问题,节省大家很多时间做更深入的事情。 2...

weixin_44389885的博客 1508

linux内核定位方法总结4 看门狗相关

linux可以使用看门狗来监控系统调度是否正常。 但是如果看门狗复位了,怎么找到凶手呢? 我们先看一下狗复位的场景: CPU的某个核挂死了; CPU发生RR死锁; CPU某些高优先级的进程或者线程一直不释放(例如在死循环); 中断/软中断/定时器挂死???我们看一下第三种场景: 看门狗的进程是普通进程,这样得不到调度,里面即使增加调测信息也无法打印。

shipinsky的博客 922

定位内核模块crash的方法

在内核模块开发过程中,常发生系统崩溃的现象,此时系统死机,无法定位和分析问题。 常见的定位方法是安装kdump-tools,kdump-tools可以把死机前的内核日志保存下来,以便开机后能分析上次死机的日志。 这里不介绍kdump-tools的安装配置方法,介绍如何分析crash日志,找到代码中出错的地方。 kdump-tools的crash日志一般放在/var/crash/出错时间/dm

xhz_1983的博客 3634

linux内核定位方法总结3 文件系统缓存

linux操作系统XXOO后,进行一般常规操作,发现性能慢了很多。 通过profile打点工具,发现很多进程比之前多了io读写操作以及块设备驱动真实的读写; 通过/proc/interrupt确实也证实了中断的计数确实比之前多很多。 排查XXOO操作,发现该操作进行了文件系统的cache刷新操作 # echo 1 > /proc/sys/vm/drop_caches 或者 #

shipinsky的博客 415

linux内核bug定位

http://blog.youkuaiyun.com/qiangweiloveforever/article/details/8302064 转载于:https://www.cnblogs.com/sstudy-linux/p/5446359.html

weixin_30426879的博客 273

linux 服务器 报内存 ecc 错误,解决方法:ECC内存检查错误纠正技术

ECC的全英文名称是Error Checking and Correcting。从这个名字可以看出,它的主要功能是“发现并纠正错误”。像奇偶校验技术一样,ECC纠错技术也需要额外的空间来存储纠错码,但是它占用的位数与数据长度不是线性的。具体来说,它基于8位数据和5位ECC代码,然后每个附加的8位数据仅需要添加另一个ECC代码。用外行的术语来说,由8位数据生成的ECC代码占用5位空间;具有16位数据...

weixin_34355977的博客 1万+
上一篇: 进程调度之thread_info和thread_struct
下一篇: SATA学习之一 代码分析和学习心得
天麓
博客等级 码龄22年 323粉丝 437原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值