对于Windows操作系统,线程信息块(TIB)包含有关当前正在执行的线程的信息,包括堆栈底部和顶部的地址。但是在Linux中,如何获取类似的信息?线程特定数据(TSD)有帮助吗?
答案 0 :(得分:1)
程序可以通过读取名为/proc/self/maps
的文件找到专用于堆栈的内存映射区域的边界。使用proc
的手册页查看如何最好地阅读maps
文件。除此之外,它还为每个内存区域提供了起始地址,结束地址,权限和大小。
您可以搜索包含您知道在堆栈中的地址的区域。一个区域将被标记为[stack]
,但我认为这只代表主线程。