调试Linux内核恐慌

2023-11-22

我是内核调试的新手。下面是最后一条内核消息。根据我的理解,它正在尝试访问空指针。但我不明白为什么它要关闭 cup 0。

Unable to handle kernel paging request at virtual address 40025694
[37655.473976] pgd = d7138000
[37655.474007] [40025694] *pgd=9ec1a831, *pte=bf2e659d, *ppte=00000000
[37655.474038] Internal error: Oops: 17 [#1] PREEMPT SMP
[37655.474038] Modules linked in:
[37655.474068] CPU: 1    Not tainted  (3.0.21-g572d9be-00004-g4ec4db2 #1)
[37655.474099] PC is at vector_swi+0x28/0x88
[37655.474129] LR is at 0x40025698
[37655.474160] pc : c01065a8    lr : 40025698    psr : 60000093
[37655.474160] sp : d6eaffb0  ip : 4062c18c  fp : 5ed97c24
[37655.474190] r10: 58702b64  r9 : 5ea56f98  r8 : 20000010
[37655.474221] r7 : 000000a8  r6 : 41b13530  r5 : 4062c270  r4 : 4062c140
[37655.474251] r3 : 00000000  r2 : ffffffff  r1 : 00000001  r0 : 5ed97bd0
[37655.474251] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
[37655.474282] Control: 10c5787d  Table: 9ec3806a  DAC: 00000015
[37655.474282] 
[37655.474282] PC: 0xc0106528:
[37655.474312] 6528  e31100ff 1afffff0 e59d1040 e5bde03c e16ff001 f57ff01f e95d7fff e1a00000
[37655.474343] 6548  e28dd00c e1b0f00e eb01ae0e e1a096ad e1a09689 e5991000 e3a08001 e3110c01
[37655.474373] 6568  0affffec e1a0100d e3a00001 eb0006ef eaffffe8 e320f000 e24dd048 e88d1fff
[37655.474404] 6588  e28d803c e9486000 e14f8000 e58de03c e58d8040 e58d0044 e3180020 13a0a000
[37655.474434] 65a8  051ea004 e59fc0ac e59cc000 ee01cf10 f1080080 e1a096ad e1a09689 e28f809c
[37655.474465] 65c8  e3daa4ff 122a7609 159f808c e599a000 e92d0030 e31a0c01 1a000008 e3570f5e
[37655.474465] 65e8  e24fee13 3798f107 e28d1008 e3a08000 e357080f e2270000 2a001084 ea022377
[37655.474526] 6608  e1a02007 e28d1008 e3a00000 eb0006c7 e28fe014 e1a07000 e28d1008 e3570f5e
[37655.474526] 
[37655.474526] SP: 0xd6eaff30:
[37655.474556] ff30  c004815c c004a2c0 c0c02080 0000000a c0d8a580 c017a2f0 c1ef1984 00000012
[37655.474587] ff50  ffffffff d6eaff9c 41b13530 000000a8 20000010 c010602c 5ed97bd0 00000001
[37655.474617] ff70  ffffffff 00000000 4062c140 4062c270 41b13530 000000a8 20000010 5ea56f98
[37655.474648] ff90  58702b64 5ed97c24 4062c18c d6eaffb0 40025698 c01065a8 60000093 ffffffff
[37655.474678] ffb0  5ed97bd0 00000001 ffffffff 00000000 4062c140 4062c270 41b13530 000000a8
[37655.474678] ffd0  5ed97bd0 5ea56f98 58702b64 5ed97c24 4062c18c 5ed97bc8 406283d7 40025698
[37655.474709] fff0  20000010 5ed97bd0 a8afc821 a8afcc21 e033cfc0 40eb3000 40eb6000 d6eb0058
[37655.474739] 0010  d75a9d68 0000079f 00100073 d6eb017d d6eb00cc d6e98f94 00000000 00000000
[37655.474770] Process UEventObserver (pid: 675, stack limit = 0xd6eae2f0)
[37655.474770] Stack: (0xd6eaffb0 to 0xd6eb0000)
[37655.474801] ffa0:                                     5ed97bd0 00000001 ffffffff 00000000
[37655.474801] ffc0: 4062c140 4062c270 41b13530 000000a8 5ed97bd0 5ea56f98 58702b64 5ed97c24
[37655.474831] ffe0: 4062c18c 5ed97bc8 406283d7 40025698 20000010 5ed97bd0 a8afc821 a8afcc21
[37655.474831] Code: e58d8040 e58d0044 e3180020 13a0a000 (051ea004) 
[37655.474862] ---[ end trace 2416079997dfe426 ]---
[37655.474862] Kernel panic - not syncing: Fatal exception
[37655.474892] [<c010cdec>] (unwind_backtrace+0x0/0x12c) from [<c078872c>] (panic+0x80/0x1a4)
[37655.474923] [<c078872c>] (panic+0x80/0x1a4) from [<c010a578>] (die+0x1d4/0x21c)
[37655.474953] [<c010a578>] (die+0x1d4/0x21c) from [<c0111510>] (__do_kernel_fault+0x64/0x84)
[37655.474953] [<c0111510>] (__do_kernel_fault+0x64/0x84) from [<c0111798>] (do_page_fault+0x268/0x288)
[37655.474984] [<c0111798>] (do_page_fault+0x268/0x288) from [<c0100340>] (do_DataAbort+0x134/0x1a4)
[37655.474984] [<c0100340>] (do_DataAbort+0x134/0x1a4) from [<c010602c>] (__dabt_svc+0x4c/0x60)
[37655.475014] Exception stack(0xd6eaff68 to 0xd6eaffb0)
[37655.475014] ff60:                   5ed97bd0 00000001 ffffffff 00000000 4062c140 4062c270
[37655.475014] ff80: 41b13530 000000a8 20000010 5ea56f98 58702b64 5ed97c24 4062c18c d6eaffb0
[37655.475045] ffa0: 40025698 c01065a8 60000093 ffffffff
[37655.475045] [<c010602c>] (__dabt_svc+0x4c/0x60) from [<c01065a8>] (vector_swi+0x28/0x88)
[37655.475075] CPU0: stopping
[37655.475075] [<c010cdec>] (unwind_backtrace+0x0/0x12c) from [<c010b438>] (handle_IPI+0x100/0x1d4)
[37655.475106] [<c010b438>] (handle_IPI+0x100/0x1d4) from [<c010044c>] (gic_handle_irq+0x9c/0xac)
[37655.475106] [<c010044c>] (gic_handle_irq+0x9c/0xac) from [<c0106094>] (__irq_svc+0x54/0x80)
[37655.475136] Exception stack(0xc874bc68 to 0xc874bcb0)
[37655.475136] bc60:                   d3cf4948 cd6dbd54 0000001f 00000000 b1d2a59d 5ea1f000
[37655.475136] bc80: d3cf4948 5ea1f000 00000000 c874a000 d2b9207c d7e55670 5ea1f02b c874bcb0
[37655.475167] bca0: c01eb894 c010bbb4 60000013 ffffffff
[37655.475167] [<c0106094>] (__irq_svc+0x54/0x80) from [<c010bbb4>] (flush_tlb_page+0x8c/0x98)
[37655.475197] [<c010bbb4>] (flush_tlb_page+0x8c/0x98) from [<c01eb894>] (ptep_clear_flush+0x30/0x38)
[37655.475197] [<c01eb894>] (ptep_clear_flush+0x30/0x38) from [<c01e743c>] (try_to_unmap_one+0xc4/0x3a4)
[37655.475228] [<c01e743c>] (try_to_unmap_one+0xc4/0x3a4) from [<c01e77a0>] (try_to_unmap_file+0x84/0x4b4)
[37655.475228] [<c01e77a0>] (try_to_unmap_file+0x84/0x4b4) from [<c01e80b0>] (try_to_unmap+0x34/0x4c)
[37655.475258] [<c01e80b0>] (try_to_unmap+0x34/0x4c) from [<c01d28dc>] (shrink_page_list+0x258/0x78c)
[37655.475258] [<c01d28dc>] (shrink_page_list+0x258/0x78c) from [<c01d31b4>] (shrink_inactive_list+0x1e0/0x330)
[37655.475289] [<c01d31b4>] (shrink_inactive_list+0x1e0/0x330) from [<c01d3704>] (shrink_zone+0x400/0x588)
[37655.475289] [<c01d3704>] (shrink_zone+0x400/0x588) from [<c01d3fd8>] (kswapd+0x594/0x970)
[37655.475319] [<c01d3fd8>] (kswapd+0x594/0x970) from [<c018e04c>] (kthread+0x80/0x88)
[37655.475319] [<c018e04c>] (kthread+0x80/0x88) from [<c01075c0>] (kernel_thread_exit+0x0/0x8)

任何指针,以便我可以继续前进。

Thanks


如果您无法重现 oops,那么您唯一真正的办法就是查看内核的 objdump,并将 oops 中转储的 CPU 状态与变量的位置进行匹配。内核树中曾经有一个指南(由 Linus 自己写的!):文档/oops-tracing.txt。然而,内核用户手册似乎现在有更多最新内容从源树呈现的文档.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调试Linux内核恐慌 的相关文章

  • 检查 Linux 中给定进程的打开 FD 限制

    我最近有一个 Linux 进程 泄露 了文件描述符 它打开了文件描述符 但没有正确关闭其中一些文件描述符 如果我对此进行监控 我就可以提前得知该过程已达到其极限 有没有一种很好的 Bash 或 Python 方法来检查 Ubuntu Lin
  • 无法使用 tar -cvpzf 解压完整目录

    把我的头敲在这上面 I used tar cvpzf file tar gz压缩一个完整的目录 我将文件移动到另一台服务器 并尝试解压缩复制存档的目录 无法使其发挥作用 bash 3 2 tar xvpzf news tar gz tar
  • 如何使用 shell 脚本解压所有 .tar.gz?

    我试过这个 DIR path tar gz if ls A DIR 2 gt dev null then echo not gz else tar zxvf path tar gz C path tar fi 如果该文件夹有一个 tar 则
  • 如何获取文件夹的大小,包括稀疏文件的表观大小? (du太慢了)

    我有一个包含很多KVM qcow2文件的文件夹 它们都是稀疏文件 现在我需要获取文件夹的总大小 qcow2 文件大小应计为表观大小 而不是实际大小 例如 图片 c9f38caf104b4d338cc1bbdd640dca89 qcow2 文
  • 我可以告诉 Linux 不要交换特定进程的内存吗?

    有没有办法告诉 Linux 它不应该将特定进程的内存交换到磁盘 它是一个 Java 应用程序 所以理想情况下我希望有一种方法可以从命令行执行此操作 我知道您可以将全局交换性设置为 0 但这明智吗 您可以通过以下方式执行此操作姆洛克尔 2 h
  • 带有接收器的 boost_log 示例无法编译

    我正在考虑将 boost log 用于一个项目 一开始我就遇到了以下问题 我在以下位置找到的升压日志示例 http www boost org doc libs 1 54 0 libs log example doc tutorial fi
  • 如何从 swagger 文档生成静态 html 文件?

    我创建了一个 Swagger 文档yaml文件位于 api swagger swagger yaml 现在我想分享一个静态 HTML 文档及其定义 但它已在招摇项目 https github com swagger api swagger
  • 对符号“pthread_key_delete@@GLIBC_2.2.5”的未定义引用

    我正在尝试在 Ubuntu 中创建一个文件 当我创建时 我不断收到此错误 usr bin ld gtest 1 7 0 libgtest a gtest all cc o undefined reference to symbol pthr
  • AMD OpenCL 在 Linux 上工作所需的最小必要文件子集是什么?

    我已经使用 buildroot 构建了 Linux 内核 我已将开源 amdgpu 驱动程序和所需的固件合并到其中 驱动程序很好 检测 GPU 模式设置运行良好 调整 小文本 的分辨率 启动后会显示命令行 现在我需要运行 OpenCL 程序
  • Pthread互斥锁由不同线程解锁

    一个天真的问题 我之前读到过 MUTEX 只能由锁定它的线程解锁 但我写了一个程序THREAD1锁定 mutexVar 并进入睡眠状态 然后THREAD2可以直接解锁mutexVar做一些操作并返回 gt 我知道每个人都说我为什么要这样做
  • 在 Windows 下使用 linux 实用程序的最佳方法是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Linux 实用程序 如 sed awk 和其他 shell 脚本功能 非常棒 但当我在 Windows 上进行开发并且无法使用其中任何一
  • 串口读取未完成

    下面的函数用于在Linux下从串口读取数据 我在调试时可以读取完整的数据 但是当我启动程序时 读缓冲区似乎并不完整 我正确接收了一小部分数据 但缓冲区的其余部分完全正确zero 可能是什么问题呢 int8 t serial port ope
  • Docker容器内的动态监听端口

    我有一个应用程序 在使用其默认端口建立一些连接后 开始打开 侦听 新的随机端口来处理现有连接 然后删除它们 视频通话 它还在通信协议内交换其IP地址和端口 我能够解决IP地址问题 但仍然无法找到一种方法来动态告诉主机的IPTABLES在Do
  • python 的 fcntl.flock 函数是否提供文件访问的线程级锁定?

    Python 的 fcnt 模块提供了一种名为 flock 1 的方法来证明文件锁定 其描述如下 对文件执行锁定操作op 描述符 fd 文件对象提供 fileno 方法被接受为 出色地 请参阅 Unix 手册集群 2 了解详情 在某些系统上
  • 如何在 Linux 中制作一个将文件转换为大写的 x86 汇编程序?

    我找到了一个名为 ProgrammingGroundUp 1 0 booksize pdf 的 pdf 文件 其中一个项目是制作一个汇编程序 该程序接收文件并将其转换为大写 section data CONSTANTS system cal
  • 为什么 ls -l 中的“总计”加起来不等于列出的总文件大小? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 为什么是total在输出中ls l打印为64并不是26078列出的所有文件的总数是多少 ls l test ls total 64 rw
  • copy_from_user() 错误:目标大小太小

    我正在为内核模块编写 ioctl 处理程序 我想从用户空间复制数据 当我编译禁用优化的代码时 O0 gflags 编译器返回以下错误 include linux thread info h 136 17 error call to bad
  • 已编译 LKM 的互换性

    是否可以使用可加载内核模块 编译为3 0 8 mod unload ARMv5 我自制的内核 在具有版本的内核中3 0 31 gd5a18e0 SMP preempt mod unload ARMv7 安卓股票内核 该模块本身几乎不包含任何
  • Linux 内核运行稀疏失败 - /bin/sh: 1:稀疏: 未找到

    我在 Linux 内核上运行稀疏 但它会抛出以下错误 在 Linux 上运行稀疏 lovegcy knltest VirtualBox git root linux make C 2make 1 不对 all 执行任何操作 HOSTCC a
  • Linux 从设备本身运行的脚本卸载设备

    我在路径中安装了一个 iso 映像 mnt iso 在这个 iso 中我有一个安装脚本 install sh 我从 iso 运行安装脚本 最后脚本询问用户是否要卸载 iso 本身 如果用户按 y 脚本将执行以下代码 cd umount mn

随机推荐

  • pytest - >如何在类下的测试方法中使用fixture返回值

    我有一个返回如下值的装置 import pytest pytest yield fixture scope module def oneTimeSetUp browser print Running one time setUp if br
  • 如何在flutter中实现浮动聊天头? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在开发的一个应用程序需要类似于 Messenger 的浮动聊天头的东西 我想使用 Flutter 开发我的应用程序 我们可以这样做吗 我认为目前你需要在原生 android
  • “应用程序无法正确初始化(0xc000007b)。”

    当我尝试启动用 C 编写的程序时 出现此错误 它在我的另一台计算机 XP SP3 32 位 上运行良好 但在我的 Windows 7 64 位版本上运行不佳 当我在程序上运行 Dependency Walker 时 它告诉我缺少 IESHI
  • 经典 ASP 和 UTF-8

    我正在更改我的应用程序以使用 utf 8 页面 所以每个ASP页面都有这段代码 Response CodePage 65001 Response CharSet utf 8 And HTML 我使用 UTF 8 编码保存了 Visual S
  • html5表单验证modernizr safari

    这是工作示例 http jsfiddle net trustweb sTSMW 我发现使用 Safari 5 05 时出现错误 如果我在 html5 页面中设置一个表单 并且如果 Modernizr 测试失败 我用 jquery 替换该功能
  • 使用 numpy.genfromtxt 读取包含逗号的字符串的 csv 文件

    我正在尝试读取 csv 文件numpy genfromtxt但有些字段是包含逗号的字符串 字符串用引号括起来 但 numpy 无法将引号识别为定义单个字符串 例如 对于 t csv 中的数据 2012 Louisville KY 3 5 2
  • 了解 swift Alamofire finishHandler

    我的 API 类中有这两个方法来从 API 获取数据 func authenticateUser completionHandler responseObject String error NSError gt makeAuthentica
  • Composer PSR-4 自动加载接口弃用通知

    我无法理解这个简单的界面有什么问题
  • System.TraceListener 如何在消息前添加进程名称?

    我一直在考虑使用 System Diagnostics Trace 进行日志记录 这是一个非常基本的应用程序 一般来说 它可以完成我需要它做的所有事情 缺点是如果我打电话 Trace TraceInformation Some info 输
  • 如何在 Opera 焦点上删除按钮轮廓

    有人知道如何去除 Opera 按钮上的虚线轮廓吗 我已经做了 干得好 http jsbin com oniva4 在 Opera 10 5 11 上测试 秘密在于使用outline offset 2px 有效地覆盖点 和轮廓的背景颜色 ou
  • C++ 为什么我不能将基类分配给子类?

    我有这样的代码 class Base public void operator const Base base class Child public Base public void func const Base base Child c
  • 如何在Android Studio中通过Glide在header中添加授权?

    我使用的是 Glide 版本 4 7 1 我不知道如何通过滑动来验证图像 这段代码是我所做的 我创建 private static final String AUTHORIZATION ss id doa3cx8OV3aGLThRrpnh
  • 与 MomentJS 的时间比较

    我正在尝试将时间与 momentJS 进行比较 这是我的脚本 document ready function var today moment console log today format hh mm if today format D
  • Gradle 中基于多风味库的单风味模块

    我正在研究多种口味app 下面的gradle文件 它使用一个名为的库tracker遵循相同的口味internal and external 现在对于棘手的部分来说 有一个名为的新模块feature 这个没有味道 但需要tracker作为依赖
  • adb 的“grep”命令出现问题

    当我在 adb 中写入时 adb shell dumpsys window windows grep E mCurrentFocus mFocusedApp 我得到错误输出 grep is not recognized as an inte
  • 后台任务中的 IOC DI 多线程生命周期范围

    我有一个使用 IOC 和 DI 来创建和注入服务的应用程序 我有一个处理一些业务逻辑的服务层 在服务层中我有一个与数据库通信的存储库 该存储库使用的 DataContext 不是线程安全的 我想使用后台任务在服务上异步运行一些功能 但知道这
  • AutoMapper 自定义类型转换器不工作

    我在用特洛伊 古德的分页列表在我的 WebApi 中提供分页信息 他的包返回一个 IPgedList 它实现 IEnumerable 但也包含自定义属性 例如 IsLastPage PageNumber PageCount 等 当您尝试从
  • 寻找重复出现的模式

    假设我有一个具有重复模式的数字 即存在一串重复的数字 以便形成有问题的数字 例如 这样的数字可能是1234123412341234 通过重复数字创建1234 我想做的是找到重复自身的模式来创建数字 因此 给定1234123412341234
  • 从 C# 运行 PowerShell 脚本

    我正在尝试使用 Visual Studio 构建图形平台 我不是开发人员 我想在单击按钮时运行 PowerShell 或批处理文件 问题是 当我尝试 C 语法时 即使我安装了 PowerShell 扩展 它也不起作用 我尝试了一些在互联网上
  • 调试Linux内核恐慌

    我是内核调试的新手 下面是最后一条内核消息 根据我的理解 它正在尝试访问空指针 但我不明白为什么它要关闭 cup 0 Unable to handle kernel paging request at virtual address 400