当前位置: 首页 > news >正文

内核Oops的几种定位方法

反汇编

报错信息

[    1.826455] ------------[ cut here ]------------
[    1.831091] Kernel BUG at c011fef0 [verbose debug info unavailable]
[    1.837344] Internal error: Oops - BUG: 0 [#1] PREEMPT THUMB2
[    1.843108] Modules linked in:
[    1.846158] CPU: 0 PID: 1 Comm: swapper Not tainted 3.10.33 #42
[    1.852075] task: c2058000 ti: c205a000 task.ti: c205a000
[    1.857473] PC is at spifb_probe+0xc/0x34c
[    1.861591] LR is at driver_probe_device+0x75/0x15c
[    1.866440] pc : [<c011fef0>]    lr : [<c013fd45>]    psr: a0000133
[    1.866440] sp : c205bd58  ip : 00000000  fp : c2256b44
[    1.877908] r10: 00000000  r9 : c2256800  r8 : c04caea8
[    1.883124] r7 : 00000000  r6 : c2258600  r5 : 00000000  r4 : c2258600
[    1.889651] r3 : c058f4d8  r2 : 00000000  r1 : c225b8b0  r0 : c2258600
[    1.896178] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA Thumb  Segment kernel
[    1.903650] Control: 50c53c7d  Table: 00004059  DAC: 00000015
......
[    3.077561] current proc: 1 swapper
[    3.081038] -----------------------------------------------------------------------------------
[    3.089700]       pid     uTime    sTime    exec(ns)    stat   cpu   task_struct
[    3.097111] -----------------------------------------------------------------------------------
[    3.105804]        1        0      168       1826120108 R(0)    0    c2058000 swapper
[    3.113612] [<c00198e9>] (unwind_backtrace+0x1/0x88) from [<c0017e5f>] (show_stack+0xb/0xc)
[    3.121969] [<c0017e5f>] (show_stack+0xb/0xc) from [<c01ed7d5>] (dump_task_info+0xad/0xe8)
[    3.130265] [<c01ed7d5>] (dump_task_info+0xad/0xe8) from [<c0049f39>] (panic_flush+0x101/0x1c8)
[    3.138957] [<c0049f39>] (panic_flush+0x101/0x1c8) from [<c004a223>] (crash_kexec+0xb/0x64)
[    3.147314] [<c004a223>] (crash_kexec+0xb/0x64) from [<c0017feb>] (die+0x18b/0x27c)
[    3.154969] [<c0017feb>] (die+0x18b/0x27c) from [<c0008267>] (do_undefinstr+0x63/0x100)
[    3.162960] [<c0008267>] (do_undefinstr+0x63/0x100) from [<c0008ca1>] (__und_svc_finish+0x1/0x40)
[    3.199835] [<c0008ca1>] (__und_svc_finish+0x1/0x40) from [<c011fef0>] (spifb_probe+0xc/0x34c)
[    3.208466] [<c011fef0>] (spifb_probe+0xc/0x34c) from [<c013fd45>] (driver_probe_device+0x75/0x15c)
[    3.217525] [<c013fd45>] (driver_probe_device+0x75/0x15c) from [<c013ee9f>] (bus_for_each_drv+0x3f/0x4a)
[    3.227010] [<c013ee9f>] (bus_for_each_drv+0x3f/0x4a) from [<c013fca3>] (device_attach+0x3b/0x54)
[    3.235855] [<c013fca3>] (device_attach+0x3b/0x54) from [<c013f6b3>] (bus_probe_device+0x17/0x60)
[    3.244731] [<c013f6b3>] (bus_probe_device+0x17/0x60) from [<c013e8a9>] (device_add+0x2c9/0x374)
[    3.253545] [<c013e8a9>] (device_add+0x2c9/0x374) from [<c016d665>] (spi_add_device+0x95/0xd0)
[    3.262146] [<c016d665>] (spi_add_device+0x95/0xd0) from [<c016e063>] (spi_register_master+0x3cf/0x40c)
[    3.271540] [<c016e063>] (spi_register_master+0x3cf/0x40c) from [<c016f4bd>] (asr_spi_probe+0x2a1/0x440)
[    3.281026] [<c016f4bd>] (asr_spi_probe+0x2a1/0x440) from [<c013fd45>] (driver_probe_device+0x75/0x15c)
[    3.290450] [<c013fd45>] (driver_probe_device+0x75/0x15c) from [<c013fe85>] (__driver_attach+0x35/0x48)
[    3.299844] [<c013fe85>] (__driver_attach+0x35/0x48) from [<c013ee45>] (bus_for_each_dev+0x3b/0x46)
[    3.308872] [<c013ee45>] (bus_for_each_dev+0x3b/0x46) from [<c013f80d>] (bus_add_driver+0x89/0x148)
[    3.317930] [<c013f80d>] (bus_add_driver+0x89/0x148) from [<c01401af>] (driver_register+0x4b/0x98)
[    3.326897] [<c01401af>] (driver_register+0x4b/0x98) from [<c0012bb9>] (do_one_initcall+0x69/0xe8)
[    3.335864] [<c0012bb9>] (do_one_initcall+0x69/0xe8) from [<c047985b>] (kernel_init_freeable+0xab/0x140)
[    3.345350] [<c047985b>] (kernel_init_freeable+0xab/0x140) from [<c000edd3>] (kernel_init+0x7/0xa0)
[    3.354408] [<c000edd3>] (kernel_init+0x7/0xa0) from [<c000913d>] (ret_from_fork+0x11/0x34)
[    3.362735]       53        0        0       1826120108 R(0)    0    c222e900 kworker/u2:1
[    3.371000] -----------------------------------------------------------------------------------

gdb定位

./owtoolchain/linux64/bin/arm-openwrt-linux-uclibcgnueabi-gdb ./marvell/linux/vmlinux.o
disassemble /m spifb_probe867     static int spifb_probe (struct spi_device *spi)
868     {0x0012e374 <+0>:     stmdb   sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}0x0012e378 <+4>:     mov     r6, r0869             struct device_node *np = spi->dev.of_node;
870             struct fb_info *info;
871             struct spifb_par *par;
872             int retval = -ENOMEM;0x0012e45a <+230>:   mvn.w   r7, #110x0012e5d0 <+604>:   mvn.w   r0, #110x0012e5d4 <+608>:   b.n     0x12e622 <spifb_probe+686>873             struct pinctrl *pinctrl;
874             BUG_ON(np != NULL);0x0012e37a <+6>:     ldr.w   r3, [r0, #324]  ; 0x1440x0012e37e <+10>:    cbz     r3, 0x12e382 <spifb_probe+14>0x0012e380 <+12>:    stmiami r9!, {r1, r9, r10, r11, r12, lr, pc}875             pr_err("enter spifb_probe.\n");

addr2line

报错信息

[KR] Oops at 0xc0laf9fa in kworker/u2:2

addr2line定位

./owtoolchain/linux64/bin/arm-openwrt-linux-uclibcgnueabi-addr2line -C -f -e ./marvell/linux/arch/arm/boot/compressed/vmlinux 0xc0laf9fa
restart
/openwrt/marvell/linux/arch/arm/boot/compressed/head.S:207

函数基地址+偏移

报错信息

PC is at pl031_probe+0x120/0x1e8

addr2line定位

前置条件,内核打开CONFIG_DEBUG_INFO选项,保存
1)根据System.map找到函数基地址,示例中,pl031_probe基地址c0363878 t pl031_probe。
2)需要查询的地址为基地址+偏移地址。示例中崩溃代码虚拟地址为0xc0363878 + 0x120 = 0xc0363998
./owtoolchain/linux64/bin/arm-openwrt-linux-uclibcgnueabi-addr2line -C -f -e ./marvell/linux/arch/arm/boot/compressed/vmlinux 0xc0363998

相关文章:

内核Oops的几种定位方法

反汇编 报错信息 [ 1.826455] ------------[ cut here ]------------ [ 1.831091] Kernel BUG at c011fef0 [verbose debug info unavailable] [ 1.837344] Internal error: Oops - BUG: 0 [#1] PREEMPT THUMB2 [ 1.843108] Modules linked in: [ 1.846158] C…...

外包干了10个月,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…...

2024美赛C完整思路

首先&#xff0c;题目明确表示可以自行选择额外的玩家信息或其他数据。因此最好找一些其他选手的数据以扩大数据集&#xff0c;与其他选题人作出数据集上的区分。大数据集可以帮助后续的建模实验更准确。 第一问本质就是开发一个评价模型&#xff0c;主要针对运动员得分的时刻…...

Backtrader 文档学习- Broker - Cheat-On-Open

Backtrader 文档学习- Broker - Cheat-On-Open 1.概述 V1.9.44.116增加了Cheat On Open的支持。对于全押的人来说&#xff0c;这似乎是一个必需的功能&#xff0c;用bar的收盘价后进行计算&#xff0c;希望与开盘价相匹配。 当开盘价差距&#xff08;上涨或下跌&#xff0c;取…...

基于微信浙江杭州某停车场车位预约小程序系统设计与实现 研究背景和意义、国内外现状

博主介绍&#xff1a;黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者&#xff0c;CSDN博客专家&#xff0c;在线教育专家&#xff0c;CSDN钻石讲师&#xff1b;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…...

编程流程图

对于复杂流程&#xff0c;我做开发之前一般会 先画一下流程图。特别是多个部门有交叉的情况下&#xff1a; processOn&#xff1a; 这个是我之前 一直的选择&#xff0c;他可以画上面的这些&#xff0c;流程图&#xff0c;网页操作&#xff0c;但是他不是免费的&#xff0c;查过…...

2024年1月29日-2月4日(全面进行+收集虚幻商城免费资源)

从上周发现&#xff0c;一轮轮推就行&#xff0c;每轮多个时间片&#xff0c;每个时间片一门。周一到周五一轮&#xff0c;周六日多轮&#xff08;比如上下午各一轮&#xff09;。 周一&#xff1a; 7&#xff1a;09–9&#xff1a;20卫星导航定位&#xff08;p3&#xff09;&a…...

【python接口自动化】- 正则用例参数化

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…...

Java中的四种线程池详解及使用场景

前言 在Java并发编程中&#xff0c;JDK提供了一套强大的线程池工具类java.util.concurrent.ThreadPoolExecutor以及它的四个便捷工厂方法&#xff0c;这四种线程池分别对应不同的使用场景和特性。下面将详细介绍每种线程池的创建方式、工作原理以及适用场景。 1. CachedThrea…...

Google Chrome 常用的几个参数

1 右键--Google Chrome--属性--目标 参数作用--disable-infobars此计算机将不会再收到 Google Chrome 更新&#xff0c;因为 Windows XP 和 Windows Vista 不再受支持。适用于 xp、2003 的 49.x.x.x 版本。示例1--ingore-certificate-errors忽略证书错误--disable-background-…...

Keil软件某些汉字输出乱码,0xFD问题,51单片机

1. 问题 keil软件输入某些汉字的时候会输出乱码&#xff0c;例如&#xff1a;升、 数 2. 原因 keil软件会忽略0xFD。 升的GB2312编码为 0xc9fd&#xff0c;keil解析为0xc9数的GB2312编码为 0xcafd&#xff0c;keil解析为0xca 关于Keil软件中0xFD问题的说明 3. 解决方案1 …...

自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人

如今&#xff0c;大模型层出不穷&#xff0c;这为自然语言处理、计算机视觉、语音识别和其他领域的人工智能任务带来了重大的突破和进展。大模型通常指那些参数量庞大、层数深、拥有巨大的计算能力和数据训练集的模型。 但不能不承认的是&#xff0c;普通人使用大模型还是有一…...

Android中 Gradle与 AGP 版本对应关系表

Android Gradle Plugin Version版本Gradle Version版本1.0.0 - 1.1.32.2.1 - 2.31.2.0 - 1.3.12.2.1 - 2.91.5.02.2.1 - 2.132.0.0 - 2.1.22.10 - 2.132.1.3 - 2.2.32.14.12.3.03.33.0.04.13.1.04.43.2.0 - 3.2.14.63.3.0 - 3.3.34.10.13.4.0 - 3.4.35.1.13.5.0 - 3.5.45.4.13.…...

Linux基础知识合集

整理了一下学习的一些关于Linux的一些基础知识&#xff0c;同学们也可以通过公众号菜单栏查看&#xff01; 一、基础知识 Linux基础知识 Linux命令行基础学习 Linux用户与组概念初识 Linux文件与目录权限基础 Linux中文件内容的查看 Linux系统之计划任务管理 二、服务器管理 Vm…...

跟着pink老师前端入门教程-day13

品优购案例 一、品优购项目规划 1. 品优购项目整体介绍 项目名称&#xff1a;品优购 项目描述&#xff1a;品优购是一个电商网站&#xff0c;我们要完成 PC 端首页、列表页、注册页面的制作 2. 品优购项目学习目的 1. 电商类网站比较综合&#xff0c;里面需要大量的布…...

go语言基础之泛型

1.泛型 泛型是一种独立于所使用的特定类型的编写代码的方法。使用泛型可以编写出适用于一组类型中的任何一种的函数和类型。 1.1 为什么需要泛型 func reverse(s []int) []int {l : len(s)r : make([]int, l)for i, e : range s {r[l-i-1] e}return r }fmt.Println(reverse…...

Vue.js 中子组件向父组件传值的方法

Vue.js 是一款流行的 JavaScript 前端框架&#xff0c;它提供了一套完整的工具和 API&#xff0c;使得开发者可以更加高效地构建交互式的 Web 应用程序。其中&#xff0c;组件化是 Vue.js 的一个核心概念&#xff0c;通过组件化可以将一个复杂的应用程序拆分成多个独立的部分&a…...

数据可视化 pycharts实现地理数据可视化(全球地图)

自用版 紧急整理一点可能要用的可视化代码&#xff0c;略粗糙 以后有机会再改 requirements&#xff1a; python3.6及以上pycharts1.9 数据格式为&#xff1a; 运行结果为&#xff1a; import pandas as pd from pyecharts.charts import Map, Timeline from pyecharts im…...

Mac下查看、配置和使用环境变量

Mac下查看、配置和使用环境变量 一&#xff1a;Mac怎么查看环境变量命令 printenv一&#xff1a;这个命令会一次性列出所有环境变量的键值对&#xff0c;输出格式为&#xff1a; VAR1value1 VAR2value2 ...二&#xff1a; 也可以通过给这个命令加上环境变量名参数&#xff0…...

虚拟机克隆的三种方式:全量克隆、快速全量克隆、链接克隆

虚拟机克隆的三种方式:全量克隆、快速全量克隆、链接克隆 快速全量克隆 特点&#xff1a;虚拟机启动快、拍平后数据独立 场景&#xff1a;快速发放独立的虚拟机&#xff0c;减少等待虚拟机部署完成时间&#xff0c;能够快速提供用户使用虚拟机。 实现方式&#xff1a;通过对…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

《信号与系统》第 6 章 信号与系统的时域和频域特性

目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...

虚幻基础:角色旋转

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 移动组件使用控制器所需旋转&#xff1a;组件 使用 控制器旋转将旋转朝向运动&#xff1a;组件 使用 移动方向旋转 控制器旋转和移动旋转 缺点移动旋转&#xff1a;必须移动才能旋转&#xff0c;不移动不旋转控制器…...