我需要获取有关进程内存映射状态的信息,以找到内存映射段,堆和堆栈片段。
在Linux上,命令/proc/<PID>/maps
显示有关进程内存映射状态的信息。在MAC上,我尝试使用vmmap PID
命令,但是在此命令发出的信息中找不到关于内存映射段,堆和堆栈碎片的信息。
信息应以以下格式显示:
556dfe8b6000-556dfe8bf000 rw-p 00107000 08:08 6553607 /bin/bash
556dfe8bf000-556dfe8c9000 rw-p 00000000 00:00 0
556dff36b000-556dff4e3000 rw-p 00000000 00:00 0 [heap]
7f558b5a3000-7f558b5a9000 rw-p 00000000 00:00 0
7f558cf3f000-7f558cf66000 r-xp 00000000 08:08 1577798 /lib/x86_64-linux-gnu/ld-2.27.so
...
7f558d168000-7f558d169000 rw-p 00000000 00:00 0
7ffe96b2c000-7ffe96b4d000 rw-p 00000000 00:00 0 [stack]
7ffe96b70000-7ffe96b73000 r--p 00000000 00:00 0 [vvar]
7ffe96b73000-7ffe96b75000 r-xp 00000000 00:00 0 [vdso]
对于该实例,我需要找到:堆-556dff36b000-556dff4e3000,堆栈-7ffe96b2c000-7ffe96b4d000,彩信-7f558b397000-7f558b3a2000。
答案 0 :(得分:0)
您可以使用以下命令找到Stack:
vmmap [PID] | grep '[S|s]tack'
堆实际上是由MALLOC行(MALLOC metadata
,MALLOC guard page
等)link