我想分析特定进程产生的每个内存块内容。所以我所做的就是使用" gcore pid"获取进程的核心转储,但我不知道如何检索内容,任何人都可以帮忙吗?
答案 0 :(得分:0)
通常,分析core
转储的好工具是gdb
调试器。
因此,您应该使用-g
标记passed to gcc
或g++
或clang
编译所有代码(以便DWARF中包含ELF调试信息可执行的。)
然后,您可以使用命令myprog
分析程序gdb myprog core
的(事后验证)核心转储。了解如何use gdb
。请注意gdb
是可编写脚本的extensible(在Python和Guile中)。
你可以(但可能不应该)分析core
文件,否则(没有gdb
)。然后你需要了解它的详细格式(这可能需要数月的工作)。请参阅elf(5)和core(5)。
BTW,valgrind也可能有用。
您甚至可以使用gdb
从没有-g
编译的程序中分析核心转储,但这样做的效果要差得多。