gpt4 book ai didi

android - 系统崩溃时如何生成 ramdumps?

转载 作者:行者123 更新时间:2023-11-29 19:08:50 30 4
gpt4 key购买 nike

在我们的项目中,我们从其他团队获得 ramdumps,这是在系统崩溃的情况下生成的,需要进一步调查。我正在开发一个实用程序,它将一些特定于板的数据保存在 ram 中,以后可以用于调试目的。为了更好地了解将使用我的实用程序的环境/过程,我试图弄清楚这些信息。

到目前为止,我知道将会有看门狗运行(软件/硬件),当在特定的超时持续时间内输入时会被触发。一旦被触发,它将通过一些系统寄存器执行系统复位。

现在我不太清楚 ramdump 何时生成,是在重置之前/之后,还是需要一些其他工具连接到用于捕获 ramdump 的板上。

我知道一旦 ramdumps 可用,我们就可以运行解析器来提取有用的信息,或者可以在 gdb 等调试器中使用它来进一步分析导致崩溃的状态。

最佳答案

有很多工具可以分析 ramdump,也就是物理内存转储。

想象一下重置后 RAM 的状况。通常,您不会在重置后转储内存,而是在重置前执行内存分析,以便进行内存分析。


Linux系统RAM-dump详解

根据ramdump的生成、传输和存储方式分为三个部分。

  1. 内核支持在内核崩溃或卡住时进入 ramdump 模式。
  2. 支持在boot-loader中检测ramdump,等待主机工具启动ramdump并将数据发送给主机。
  3. 主机工具,可以从设备接收数据并将其保存在主机 PC 文件系统中。

后面还需要bootloader的支持,它决定是否进入ramdump模式而不是正常启动Linux。


崩溃期间生成 Ramdump

从 ramdump 驱动程序注册的内核 panic 通知程序将被内核调用。 Ramdump 驱动做的,

  1. 调用cache sycn api来确保ram中的所有内容是连贯的。(flush_cache_all(), outer_flush_all())
  2. 将核心寄存器保存到ram
  3. 保存MMU寄存器
  4. 将 MAGIC_CRASH 写入 SRAM 寄存器。然后重新启动。现在引导加载程序在 SRAM 寄存器中找到 MAGIC_CRASH 并进入 ramdump 模式。

关于 Ramdump Linux inspection 的非常详细的信息.


你可以在飞行中尝试这样的事情

$ cat /proc/[your_pid]/maps and the use gdb to inspect
$ gdb --pid [your_pid]

一些可以帮助您的工具。

浏览这些列表,您将找到有关 (FATKit) Foresnic Analysis 工具包的信息。Foriana 等

  1. > Linux memory analysis tools
  2. > How to dump Linux memory?

关于android - 系统崩溃时如何生成 ramdumps?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46148905/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com