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

系统崩溃分析 - vmcore 加载到 Trace32

crash 是 Linux 内核开发中流行的调试工具。特别是它提供了强大的使用搜索命令进行内存搜索的功能。但是,它有点不方便,因为在移动每个进程的调用堆栈时没有查看局部变量的功能。...应读者要求,这篇文章,我将介绍如何从 vmcore 中提取堆栈转储并将调用堆栈上传到 Trace32。 使用命令“./crash64 vmcore vmlinux”运行崩溃实用程序。 $..../crash64 vmcore vmlinux ...... please wait... ...WARNING: cannot determine starting stack frame for task ffffffc87bb4cc00 KERNEL: vmlinux DUMPFILE: vmcore...这样就可以在 T32 上的 vmcore 中看到内存转储。 关于 Trace32 的升级用法,我这里有一份文档,欢迎关注视频号获取。

1.4K20

linux系统奔溃之vmcore:kdump 的亲密战友 crash

crash 是目前广泛使用的 linux 内核崩溃转储文件的分析工具,掌握 crash 的使用技巧,对于分析定位内核崩溃的问题,有着非常重要的作用。...什么是 crash 如前文所述,当 linux 系统内核发生崩溃的时候,可以通过 kdump 等方式收集内核崩溃之前的内存,生成一个转储文件 vmcore。...内核开发者通过分析vmcore 文件就可以诊断出内核崩溃的原因,从而进行操作系统的代码改进。...内核开发者通过分析vmcore 文件就可以诊断出内核崩溃的原因,从而进行操作系统的代码改进。...对于这种情况,我们需要重新 dump 一个完整的 vmcore 进行分析调试。 小结 对于内核开发人员,crash 已经成了必不可少的一个工具。

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

    Linux crash分析简明参考

    ,包括:如何安装kdump,如何设置系统参数来捕获崩溃前的内存;如何使用crash做简单的分析;并且介绍如何使用更加简便的工具PyKdump来做crash文件的分析.通过了解这些知识, 可以帮助Linux...vmcore所对应的OS版本相同的调试信息文件,也即debuginfo,并安装crash工具来分析vmcore.为了简化分析,我们这里引入了PyKdump插件.整体步骤如下图所示:3 配置kdump工具...4.1 安装crash工具为了不影响生产系统的运行,通常我们会将生成的vmcore文件拷贝到用于分析Linux系统上去分析.分析工具通常采用crash工具.CentOS下可以通过如下命令安装: yum...,并且要对照Linux源代码进行分析,其门槛比较高,新手短时间内很难掌握.还好有PyKdump工具,该工具以python语言编写,集合了常用的vmcore文件分析功能,可以作为crash插件的方式运行,.../vmcore打开crash后,我们通过如下命令载入前面编译的PyKdump库:extend /path/to/lib/mpykdump.so然后就可以方便地使用PyKdump库中的工具来快速分析vmcore

    1.8K00

    解决云服务器开机后,内存与实际不符的问题

    经过上网查询,发现可能是Linux内核错误转储的kdump空间的预留导致的,因此查看grub的配置文件: sudo vim /etc/default/grub 发现其中Linux启动的命令行参数为: GRUB_CMDLINE_LINUX...kdump是Linux内核的一个功能,可在发生内核错误时创建核心转储。当被触发时,kdump会导出一个内存映像(也称为vmcore),该映像可用于调试和确定崩溃的原因。...主内存的转储映像作为可执行与可链接格式(ELF)对象导出,可以在处理内核崩溃时通过/proc/vmcore直接访问,也可以自动保存到本地可访问的文件系统、 裸设备或通过网络访问的远程系统。...kdump是为了出错后方便分析错误。那我们干脆不分析了吧!那直接关掉kdump功能即可!

    61111

    Linux kernel 调试方法总结

    2.2 crash 使用 crash 工具来分析 Linux 内核崩溃是一个强大的方法,它可以帮助你理解内核崩溃时的状态,包括堆栈跟踪、内存状态、寄存器内容等。...crash 主要用于分析由 kdump 服务生成的内核崩溃转储(vmcore 文件)。...例如,要获取当前环境的堆栈跟踪,可以运行: bt 假设系统因为某个驱动错误而崩溃,已经通过上述步骤获得了 vmcore 文件。...现在,可以使用 crash 来分析驱动中可能的错误位置,检查在崩溃时的函数调用堆栈,以及查看那时的内存状态和变量。 通过这样的分析,可以精确地定位到问题发生的代码行,从而更有针对性地解决问题。...结束语 通过有效地使用这些工具,Linux 内核开发者可以更有效地定位和解决内核级别的问题。

    40300

    Linux内核分析:页回收导致的cpu load瞬间飙高的问题分析与思考

    我希望能借助这个机会给大家介绍一下在Linux系统出现问题时我们能够借助哪些工具去协助分析;以及介绍一下Linux在内存管理方面的一些机制以及我们的使用策略。...Linux系统出现问题,我们该如何去分析 工欲善其事,必先利其器。要解决问题,首先得去定位问题的原因。 在Linux系统里面有很多的问题定位工具,可以协助我们来分析问题。...kdump是通过/etc/kdump.conf来配置的,默认它会把抓取到的内核现场信息(即vmcore)给生成到/var/crash目录下,通过crash这个命令来分析vmcore。...#现场信息的分析过程 可以通过crash这个命令来分析vmcore,由于这个vmcore不是ELF格式,所以是不能用gdb之类的工具来分析的。...以下是对该vmcore的部分关键信息分析: $ crash /usr/lib/debug/lib/modules/2.6.32-431.el6.x86_64/vmlinux vmcore crash

    40021

    Crash工具实战-结构体解析

    系统崩溃,死机,卡顿等问题经常遇到,但又很棘手,这里推荐个分析神器,视频号里也做过类似的分析。...Crash 工具用于解析 kdump 抓取的 vmcore信息,如之前分析vmcore 实际为系统运行当时的内存镜像,其中包括了所有的内存中可以看到的信息,通过 Crash 工具可以解析 vmcore...示例 启动crash crash vmlinux vmcore 找到sk_buff结构体地址 bt 命令查看当前上下文的寄存器和堆栈信息。...其实可以明显看出,上述示例中的 skb_shared_info 结构的数据不对,因为这个数据区被踩坏了,本示例就是在分析内存被踩的问题。...包括但不限于:C/C++,Arm, Linux,Android,人工智能,单片机,树莓派,等等。在上面的【人人都是极客】公众号内回复「peter」,即可免费获取!!

    1.9K20

    Linux 性能分析工具 nmon for Linux

    将数据保存到一个逗号分隔的文件以供分析,并进行长时间数据捕捉 配合使用 nmon Excel 2000 电子表格分析器,该分析器能够加载 nmon 输出文件并自动为你创建几十个图形,你可以基于这些图形研究或填写性能报告...将这些数据直接放到一个 rrd 或者其他类型的数据库以备你自己分析使用。...下载源码编译 - 点击 编译 nmon 数据分析 保存好 nmon 数据以后,你可以使用以下几种工具之一来对其进行分析并生成统计图。...下载 nmon Excel 电子表格分析器 这个比较原始工具多年前由 Stephen Atkins 研发 你可以通过性能工具论坛请求支持 Linux 用户可能并不喜欢使用微软电子表格的想法,他们很难自动生成图形...,可以通过一个浏览器对分析情况进行查看 现在 - 开源了 nmon for Linux 是一个单一的 5000 行代码的源码文件和单一的 makefile。

    6.9K60

    Linux 内核架构分析

    进程间通信(IPC)子系统实现在单个Linux系统上进行进程间通信的多种机制。 从依赖性的角度分析: 进程调度程序子系统使用内存管理器为恢复特定进程的特定进程调整硬件内存映射。...3.各子系统架构分析 3.1 进程调度器架构 进程调度器是Linux内核中最重要的子系统。其目的是控制对计算机CPU的访问。这不仅包括用户进程的访问,还包括其他内核子系统的访问。...3.2.1 模块结构分析 内存管理器主要由以下三个模块组成: 体系结构相关模块为内存管理硬件提供了虚拟接口 体系结构无关模块执行所有的每个进程映射和虚拟内存交换。...3.2.2 从数据表征的角度分析: 内存管理器存储物理地址到虚拟地址的每个进程的映射。该映射作为参考存储在流程调度程序的任务列表数据结构中。...3.3.1 模块结构分析 可分为四大模块: 公共驱动抽象模块 由于存在大量不兼容的硬件设备,因此存在大量的设备驱动程序。Linux系统最常见的扩展是添加了新的设备驱动程序。

    2.8K30

    Linux 启动流程分析

    我主要关心的是Linux操作系统,它是目前服务器端的主流操作系统。下面的内容针对的是Debian发行版,因为我对其他发行版不够熟悉。...它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。 init进程的一大任务,就是去运行这些开机启动的程序。...Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。 ? Linux预置七种运行级别(0-6)。...Linux的解决办法,就是七个 /etc/rcN.d 目录里列出的程序,都设为链接文件,指向另外一个目录 /etc/init.d ,真正的启动脚本都统一放在这个目录中。...顺便提一下,除了Linux以外, Mac OS X 使用的shell也是Bash。但是,它只加载.bash_profile,然后在.bash_profile里面调用.bashrc。

    1.6K30
    领券