我在Solaris上使用的是g++。有没有办法在内部或外部知道到目前为止在函数调用中aI已经使用了多少堆栈大小?这是诊断疑似堆栈溢出所必需的。
发布于 2017-06-19 20:56:33
静态分析:如果应用程序的堆栈大小相同,则请求编译器/链接器进行静态分析(检查编译器选项-fstack-usage )。
动态分析/方法:使用调试器,并在堆栈的末尾设置一个条件(写访问)断点。如果应用程序写入堆栈的末尾,调试器将停止并向您显示调用堆栈和导致内存冲突的函数。
发布于 2017-06-19 21:57:10
DTractToolkit有一个stacksize.d。这可能值得一看。
https://stackoverflow.com/questions/44630791
复制相似问题