在 Linux 中是否有枚举分配的堆块的标准方法?
Is there a standard way of enumerating allocated heap blocks in Linux?
在 windows 中,我使用 Heap32ListFirst / Heap32ListNext 来遍历堆列表,然后对于每个堆,我将使用 Heap32First / Heap32Next 来获取每个块。
在 Linux、glibc 或其他方面是否有等效的方法?我找不到任何遍历堆的函数。
您可以使用sbrk(0)
来获取"program break" 指针,这实际上是堆的"end"。然而,走它需要了解您的特定 malloc()
的实现细节。所以不,实际上并没有一个标准的方法来做你所要求的。
另请参阅:How to iterate all malloc chunks (glibc)
在 windows 中,我使用 Heap32ListFirst / Heap32ListNext 来遍历堆列表,然后对于每个堆,我将使用 Heap32First / Heap32Next 来获取每个块。
在 Linux、glibc 或其他方面是否有等效的方法?我找不到任何遍历堆的函数。
您可以使用sbrk(0)
来获取"program break" 指针,这实际上是堆的"end"。然而,走它需要了解您的特定 malloc()
的实现细节。所以不,实际上并没有一个标准的方法来做你所要求的。
另请参阅:How to iterate all malloc chunks (glibc)