【发布时间】:2017-11-21 16:24:02
【问题描述】:
我在 Solaris 上使用 g++。有什么方法可以在内部或外部知道到目前为止我在函数调用中使用了多少堆栈大小?这是诊断可疑堆栈溢出所必需的。
【问题讨论】:
-
@NathanOliver 我想知道到目前为止我在堆栈大小方面消耗了多少而不是最大限制
标签: c++ memory-management stack runtime solaris-10
我在 Solaris 上使用 g++。有什么方法可以在内部或外部知道到目前为止我在函数调用中使用了多少堆栈大小?这是诊断可疑堆栈溢出所必需的。
【问题讨论】:
标签: c++ memory-management stack runtime solaris-10
DTractToolkit 有一个 stacksize.d。这可能值得一看。
【讨论】:
静态分析: 如果您的应用程序的堆栈大小,请求编译器/链接器进行静态分析(检查编译器选项 -fstack-usage )。
动态分析/方法: 使用调试器并将条件(写访问)断点设置到堆栈的末尾。 如果应用程序写入堆栈的末尾,调试器将停止并向您显示调用堆栈和导致内存冲突的函数。
【讨论】: