我想分析特定进程产生的每个内存块内容。所以我所做的是使用“gcore pid”来获取进程的核心转储,但我不知道如何检索内容,有人可以帮忙吗?
问问题
469 次
1 回答
0
一般来说,分析core
转储的好工具是gdb
调试器。
因此,您应该使用传递给or的-g
标志编译所有代码或(在ELF可执行文件中包含DWARF调试信息)。gcc
g++
clang
myprog
然后,您可以使用命令分析程序的(事后或不事后)核心转储gdb myprog core
。了解如何使用gdb
。请注意,它gdb
是可编写脚本和可扩展的(在 Python 和 Guile 中)。
您可以(但可能不应该)core
以其他方式分析文件(没有gdb
)。然后你需要了解它的详细格式(这可能需要几个月的工作)。参见elf(5)和core(5)。
顺便说一句,valgrind也可能有用。
你甚至可以gdb
用来分析一个没有编译的程序的核心转储,-g
但它的用处要小得多。
于 2017-12-10T08:12:21.940 回答