Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我遇到了一个非常奇怪的段错误,我今天最终修复了它。看来问题是我在堆栈上分配了一个非常大的数组,这导致了问题。
我的问题是,您是否总是在堆栈溢出时收到 SEGV 信号?是否有任何特殊信号可以提醒存在堆栈溢出问题?
我正在使用 g++ 和 gdb。
Unix信号意义上的“信号”显然是SEGV。:) 如果你的意思是像使用诊断工具这样的信号,它会告诉你什么时候发生了不好的事情,你可以尝试 valgrind,但实际上,你的系统只是告诉你。并且在编译时知道堆栈是否会溢出是不可能的,部分原因是堆栈大小限制是一个运行时参数,而且我想如果你知道它会是什么先验,你仍然会遇到类似的东西停机问题。