有没有办法在 Ubuntu 中找到分配给应用程序的堆和堆栈的地址范围?

问题描述

有没有办法在 Ubuntu 中找到分配给应用程序的堆和堆栈的地址范围? 我希望 Valgrind 或 Valgrind 的插件可以帮助我,但我没有找到。

解决方法

在 Linux 上,您可以检查包含当前映射到进程的区域的 /proc/[pid]/maps 文件。该文件还有专门的部分 [stack] 用于主进程堆栈,[stack:<tid>] 用于线程 tid 堆栈,[heap] 用于进程堆。有关详细信息,请参阅 man 5 proc