我刚刚遇到一个问题,当一个本地对象试图调用一个非常简单的过程时,HPUX上的线程c ++程序中的堆栈溢出导致SEGV_MAPERR.我有一段时间感到困惑,但幸运的是我和那些认识到这是堆栈大小问题的人交谈过,我们能够通过增加线程可用的堆栈大小来解决问题.
如何识别堆栈何时溢出?在windows/linux/hpux上症状有所不同吗?
假设你不在一个会停止你的应用程序并说"堆栈溢出"的平台上,我怀疑你会看到你从任何缓冲区溢出中看到的相同行为.堆栈只是你程序的另一个预先分配的内存块,如果你超出这些界限......祝你好运!谁知道你会踩到什么!
你可以写一下来自CPU的温度读数,它可能是你给Larry输入的电子邮件,可能有点说内核被锁定,导致一个有趣的死锁条件!谁知道.
至于C++,没有什么可以说堆栈应该如何与内存中的其他内容相关联,或者这个东西甚至需要是一个堆栈!