【问题标题】:How to check stack usage at Linux runtime?如何在 Linux 运行时检查堆栈使用情况?
【发布时间】:2018-10-11 03:23:43
【问题描述】:
  1. Linux 上是否有任何工具可以在运行时检查堆栈使用/大小?我知道我们可以通过编码来做到这一点,但我更愿意使用工具而不是代码。
  2. GDB 可用于附加特定进程,bt 命令可显示堆栈帧。 value=(第n帧的地址-第1帧的地址)可以认为是堆栈大小的近似数吗?

【问题讨论】:

    标签: c++ linux stack


    【解决方案1】:

    您可以使用sysconf() 子程序在运行时获取堆栈使用。来自sysconf()的手册页

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

    long sysconf(int name);
    

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

    使用_SC_THREAD_ATTR_STACKADDR、_SC_THREAD_STACK_MIN 等在sysconf() 手册页中指定的各种宏。

    猜你喜欢
    • 2011-12-15
    • 2018-12-11
    • 2010-09-12
    • 1970-01-01
    • 2023-03-03
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    相关资源
    最近更新 更多