如何在Linux中获取分配给当前进程的堆栈区域?

时间:2016-03-16 13:20:15

标签: linux assembly stack

对于Windows操作系统,线程信息块(TIB)包含有关当前正在执行的线程的信息,包括堆栈底部和顶部的地址。但是在Linux中,如何获取类似的信息?线程特定数据(TSD)有帮助吗?

1 个答案:

答案 0 :(得分:1)

程序可以通过读取名为/proc/self/maps的文件找到专用于堆栈的内存映射区域的边界。使用proc的手册页查看如何最好地阅读maps文件。除此之外,它还为每个内存区域提供了起始地址,结束地址,权限和大小。

您可以搜索包含您知道在堆栈中的地址的区域。一个区域将被标记为[stack],但我认为这只代表主线程。