如何检查Linux运行时的堆栈使用情况?

时间:2018-05-01 02:10:47

标签: c++ linux stack

  1. Linux上是否有用于在运行时检查堆栈使用/大小的工具?我知道我们可以通过编码来实现,但我宁愿使用工具而不是代码。
  2. GDB可用于附加特定进程,bt命令可以显示堆栈帧。可以将值=(第n帧的地址 - 第1帧的地址)视为堆栈大小的近似数量吗?

1 个答案:

答案 0 :(得分:0)

你可以使用sysconf()子程序在运行时获取堆栈usgae。来自sysconf()

的手册页
  

sysconf - 在运行时获取配置信息

long sysconf(int name);
     

在编译时,这是通过包含和/或来完成的             并测试某些宏的值。在运行时,可以使用当前函数询问数值          sysconf()。

使用_SC_THREAD_ATTR_STACKADDR手册页中指定的_SC_THREAD_STACK_MINsysconf()等各种宏。