c++ - 堆栈溢出与段错误

标签 c++ gdb segmentation-fault stack-overflow

我有一个非常奇怪的段错误,我今天终于修复了。看来问题是我在堆栈上分配了一个非常大的数组,这导致了问题。

我的问题是,您是否总是在堆栈溢出时收到 SEGV 信号?是否有任何特殊信号可以提醒堆栈溢出问题?

我正在使用 g++ 和 gdb。

最佳答案

Unix 信号意义上的“信号”显然是 SEGV。 :) 如果您的意思是像使用诊断工具这样的信号,它会在发生不良情况时告诉您,您可以尝试使用 valgrind,但实际上,您的系统只是告诉了您。并且在编译时知道堆栈是否会溢出是不可能的,部分原因是堆栈大小限制是一个运行时参数,此外我想如果你知道它是先验的,你仍然会遇到类似停机问题。

关于c++ - 堆栈溢出与段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10576456/

相关文章:

c++ LNK2019我是菜鸟,我被困了。请帮助我

c++ - GCC 4.4/4.5 unique_ptr 不适用于 unordered_set/unordered_map

C++——不同类型对象的数组

c++ - 如何使用GDB查找一个内存地址对应什么函数

android - 谷歌地图 Activity 因后退按钮上的 SIGSEGV 而崩溃

c++ - Qt 的调试器是否适用于段错误?

C 程序在 41 秒后给出段错误

c++ - 是否可以有一个带有参数作为类名 c++ 的构造函数?

linux - 跨gdb : fix a mismatch between libthread_db and libpthread

unix - 如何在gdb中附加一个进程