【发布时间】:2012-04-09 07:33:44
【问题描述】:
我正在尝试学习如何访问进程的内存区域,以便打印代码的开始和结束地址、其数据区域以及堆的开始和结束。 我相信 /proc/$pid/maps 包含进程的开始和结束内存区域,但我想知道是否还有其他方法。也许是 ptrace() ?
【问题讨论】:
标签: linux memory-management process ptrace
我正在尝试学习如何访问进程的内存区域,以便打印代码的开始和结束地址、其数据区域以及堆的开始和结束。 我相信 /proc/$pid/maps 包含进程的开始和结束内存区域,但我想知道是否还有其他方法。也许是 ptrace() ?
【问题讨论】:
标签: linux memory-management process ptrace
/proc/$pid/maps 或 /proc/$pid/smaps 是获取进程地址空间映射信息的最佳但特定于 linux 的方法。
您可以使用/proc/$pid/mem 访问内存区域(注意lseek 到适当的区域,或者使用mmap 访问它)。
【讨论】:
/proc 文件系统是查询进程(和一些系统)相关事物的首选方式。