我有一个非常奇怪的段错误,我今天终于修复了。问题似乎是我在堆栈上分配了一个非常大的数组,这导致了问题。
我的问题是,堆栈溢出时总是收到SEGV信号吗?有没有什么特殊的信号可以提醒存在堆栈溢出问题?
我正在使用g++和gdb。
发布于 2012-05-14 08:58:29
Unix信号意义上的“信号”显然是SEGV。:)如果你指的是信号,比如使用诊断工具来告诉你什么时候发生了不好的事情,你可以尝试valgrind,但实际上,你的系统已经告诉你了。而且在编译时知道堆栈是否会溢出是不可能的,部分原因是堆栈大小限制是一个运行时参数,此外,我想如果你事先知道它会是什么,你仍然会遇到像停止问题这样的问题。
https://stackoverflow.com/questions/10576456
复制相似问题