【问题标题】:How to retrieve memory content from a process core file?如何从进程核心文件中检索内存内容?
【发布时间】:2017-12-10 08:08:34
【问题描述】:

我想分析特定进程产生的每个内存块内容。所以我所做的是使用“gcore pid”来获取进程的核心转储,但我不知道如何检索内容,有人可以帮忙吗?

【问题讨论】:

  • “分析每个内存块内容”是什么意思?我对您对“每个”的使用感到有些困惑......为什么不只是 some 他们?你真正想做什么样的分析。你应该编辑你的问题,提供更多的动机和背景(在几个额外的段落中)。那是什么过程?你有它的程序的源代码吗?你有什么实际的内存块分析? 您想要解决的真正问题是什么?
  • 在目前的形式中,您的问题不清楚,过于宽泛和令人困惑.....请改进它。

标签: linux memory process analysis gcore


【解决方案1】:

一般来说,分析core 转储的好工具是gdb 调试器。

因此,您应该使用-g 标志passed to gccg++clang 编译所有代码(在DWARF 可执行文件中包含DWARF 调试信息)。

然后,您可以使用命令gdb myprog core 分析程序myprog 的(事后或不事后)核心转储。了解如何use gdb。请注意,gdb 是可编写脚本的,extensible(在 Python 和 Guile 中)。

否则您可以(但可能不应该)分析core 文件(没有gdb)。然后你需要了解它的详细格式(这可能需要几个月的工作)。请参阅elf(5)core(5)

顺便说一句,valgrind 也可能有用。

您甚至可以使用gdb 来分析未使用-g 编译的程序的核心转储,但用处不大。

【讨论】:

    猜你喜欢
    • 2021-02-01
    • 2018-01-17
    • 2023-01-12
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 2017-12-22
    相关资源
    最近更新 更多