【问题标题】:Querying runtime stack size on Solaris using C++使用 C++ 在 Solaris 上查询运行时堆栈大小
【发布时间】:2017-11-21 16:24:02
【问题描述】:

我在 Solaris 上使用 g++。有什么方法可以在内部或外部知道到目前为止我在函数调用中使用了多少堆栈大小?这是诊断可疑堆栈溢出所必需的。

【问题讨论】:

标签: c++ memory-management stack runtime solaris-10


【解决方案1】:

DTractToolkit 有一个 stacksize.d。这可能值得一看。

【讨论】:

    【解决方案2】:

    静态分析: 如果您的应用程序的堆栈大小,请求编译器/链接器进行静态分析(检查编译器选项 -fstack-usage )。

    动态分析/方法: 使用调试器并将条件(写访问)断点设置到堆栈的末尾。 如果应用程序写入堆栈的末尾,调试器将停止并向您显示调用堆栈和导致内存冲突的函数。

    【讨论】:

    • 如何设置条件断点到栈尾(gdb内)?
    猜你喜欢
    • 2014-04-14
    • 2011-02-23
    • 2016-07-15
    • 2014-04-17
    • 2020-08-30
    • 2014-12-07
    • 2015-01-02
    • 2021-04-02
    相关资源
    最近更新 更多