【问题标题】:Accessing a Process's Memory Region访问进程的内存区域
【发布时间】:2012-04-09 07:33:44
【问题描述】:

我正在尝试学习如何访问进程的内存区域,以便打印代码的开始和结束地址、其数据区域以及堆的开始和结束。 我相信 /proc/$pid/maps 包含进程的开始和结束内存区域,但我想知道是否还有其他方法。也许是 ptrace() ?

【问题讨论】:

    标签: linux memory-management process ptrace


    【解决方案1】:

    /proc/$pid/maps/proc/$pid/smaps 是获取进程地址空间映射信息的最佳但特定于 linux 的方法。

    您可以使用/proc/$pid/mem 访问内存区域(注意lseek 到适当的区域,或者使用mmap 访问它)。

    【讨论】:

    • 它可能只存在于内核领域。所以不行。在 linux 上,/proc 文件系统是查询进程(和一些系统)相关事物的首选方式。
    猜你喜欢
    • 2021-04-18
    • 2013-02-28
    • 1970-01-01
    • 2018-09-11
    • 2017-08-01
    • 2012-03-20
    • 2018-09-24
    • 1970-01-01
    • 2013-03-24
    相关资源
    最近更新 更多