【发布时间】:2018-10-11 03:23:43
【问题描述】:
- Linux 上是否有任何工具可以在运行时检查堆栈使用/大小?我知道我们可以通过编码来做到这一点,但我更愿意使用工具而不是代码。
- GDB 可用于附加特定进程,
bt命令可显示堆栈帧。 value=(第n帧的地址-第1帧的地址)可以认为是堆栈大小的近似数吗?
【问题讨论】:
bt 命令可显示堆栈帧。 value=(第n帧的地址-第1帧的地址)可以认为是堆栈大小的近似数吗?【问题讨论】:
您可以使用sysconf() 子程序在运行时获取堆栈使用。来自sysconf()的手册页
sysconf - 在运行时获取配置信息
long sysconf(int name);在编译时,这是通过包含和/或来完成的 并测试某些宏的值。在运行时,可以使用 present 函数请求数值 sysconf().
使用_SC_THREAD_ATTR_STACKADDR、_SC_THREAD_STACK_MIN 等在sysconf() 手册页中指定的各种宏。