我有一个非常奇怪的段错误,我今天终于修复了。看来问题是我在堆栈上分配了一个非常大的数组,这导致了问题。
我的问题是,您是否总是在堆栈溢出时收到 SEGV 信号?是否有任何特殊信号可以提醒堆栈溢出问题?
我正在使用 g++ 和 gdb。
最佳答案
Unix 信号意义上的“信号”显然是 SEGV。 :) 如果您的意思是像使用诊断工具这样的信号,它会在发生不良情况时告诉您,您可以尝试使用 valgrind,但实际上,您的系统只是告诉了您。并且在编译时知道堆栈是否会溢出是不可能的,部分原因是堆栈大小限制是一个运行时参数,此外我想如果你知道它是先验的,你仍然会遇到类似停机问题。
关于c++ - 堆栈溢出与段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10576456/