如何查找程序的堆内存的起始和结束地址?

时间:2015-07-06 07:20:42

标签: c linux unix

有没有办法找到堆内存的起始和结束地址。

#include<stdio.h>
void main()
{
    printf("Ending address of Heap: %x\n",sbrk(0)); 
}

上面的代码显示了堆内存的结束地址。就像那样 有没有办法找到堆的起始地址。

输出:

  

Heap的结束地址:8556000

1 个答案:

答案 0 :(得分:1)

在Linux上你可以打开文件/ proc / self / maps, 例如使用fopen,然后读取它直到找到行 像这样:

  

0060f000-00630000 rw-p 00000000 00:00 0 [heap]

0060f000-00630000 - 堆的地址范围