我有一个非常奇怪的段错误,我今天最终修复了。似乎问题是我在堆栈上分配了一个非常大的数组,这导致了问题。
我的问题是,你是否总是在堆栈溢出时得到SEGV信号?是否有任何特殊信号可以警告存在堆栈溢出问题?
我正在使用g ++和gdb。
答案 0 :(得分:2)
Unix信号意义上的“信号”显然是SEGV。 :)如果你的意思是使用一个诊断工具的信号会告诉你什么时候发生了不好的事情,你可以尝试valgrind,但实际上,你的系统只是告诉你。并且在编译时知道堆栈是否会溢出是不可能的,部分原因是堆栈大小限制是运行时参数,而且我想如果你知道它是什么先验,你仍然会被困在类似于停止问题。