进程的 GDB 全内存转储
Posted
技术标签:
【中文标题】进程的 GDB 全内存转储【英文标题】:GDB full memory dump of process 【发布时间】:2020-05-03 11:40:01 【问题描述】:我正在尝试转储远程计算机上的进程内存。目标机器是某种旧的 Linux,我在上面运行 gdbserver 8.3
我已经编译。
我可以使用gcore
命令创建一些方便的转储,但是,这些转储缺少所有r-x
和r--
部分,它只包含可写部分。谁能指导我如何生成完整的内存转储,包括所有内容,最好采用相同的核心转储格式?
我都试过了
set use-coredump-filter on
set use-coredump-filter off
和
set dump-excluded-mappings on
set dump-excluded-mappings off
【问题讨论】:
【参考方案1】:您应该根据http://man7.org/linux/man-pages/man5/core.5.html 在/proc/PID/coredump_filter
中设置核心文件过滤器。
例如
echo 0xff > /proc/$(pidof foo)/coredump_filter
gcore $(pidof foo)
【讨论】:
太棒了,谢谢。我还是不明白为什么set use-coredump-filter off
没有解决。以上是关于进程的 GDB 全内存转储的主要内容,如果未能解决你的问题,请参考以下文章
在 Linux 上使用核心转储和 gdb 如何使用近似虚拟内存 (VSZ)?
如何获取详细的 valgrind 核心或使用 gdb 将调试附加到核心在启动时转储的进程?