gdb stackoverflow

时间:2011-03-25 08:34:35

标签: c gdb stack-overflow

假设我正常运行一个程序,它调用一个特定的函数(比如说A()),它递归调用自己直到堆栈溢出(这发生在A()被调用了大约10次之后)。如果我在gdb下运行相同的程序,即使在递归调用A()超过20次之后,堆栈也不会溢出。是因为我在gdb下运行它发生了这种情况,还是有其他原因?

编辑:我将复制粘贴我获得的回溯,任何迹象表明为什么发生了seg故障?更大的问题是我如何找到它?

enter image description here

1 个答案:

答案 0 :(得分:0)

  

是因为我在gdb下运行它发生了这种情况,还是有其他原因?

允许的递归调用数不依赖于编译器或调试器。它仅限于堆栈的大小。假设程序在同一操作系统上运行,我不确定递归调用的数量是否与您的情况不同。