c++ - C++程序中堆栈溢出的症状是什么?

原文 标签 c++ stack-overflow

我只是遇到一个问题,当本地对象试图调用一个非常简单的过程时,HPUX上的线程化c++程序中的堆栈溢出导致SEGV_MAPERR。我有一段时间感到困惑,但是幸运的是,我与认识到这是堆栈大小问题的人进行了交谈,我们能够通过增加线程可用的堆栈大小来解决此问题。

如何识别堆栈何时溢出? Windows/Linux/hpux上的症状是否有所不同?

最佳答案

How can I recognize when the stack overflows?



如果您知道堆栈的大小,堆栈的起始位置以及它在内存中的增长方向,则只需检查stack pointer的地址,然后查看它是否超过了堆栈的末尾。 C++不允许直接访问堆栈指针。您可以轻松地在汇编中编写一个小函数来执行此分析并将其链接到您的程序中。

关于c++ - C++程序中堆栈溢出的症状是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/562973/

相关文章:

c++ - 将 c/c++ 代码移植到 VxWorks 的问题

c++ - 使用OpenGL写入图像文件

c++ - 替换C++ 98中的模式

c - 将malloc与双指针一起使用时出现段错误

c++ - C++堆栈数据结构。这段代码有什么问题?

c++ - 除了分配和ctor调用之外,C++ new运算符还做什么?

java - 为什么paint()没有使StackOverflowError?

scala - 合并 "Programming Scala"中的排序导致堆栈溢出

java - 如何通过递归getHeight方法修复堆栈溢出

c# - 程序化按钮单击将引发 'System.StackOverflowException'异常