2012-05-05 89 views
-1

有时候,当我有一个包含大量堆栈变量(比如struct mystruct m [1000])的C函数时,只有在使用gdb进行调试时,程序在进入此函数时才会崩溃只有在跟踪时程序崩溃

你能解释一下那里发生了什么?对不起,如果这不是一个“真正的”问题,但我想我可以从答案中学习。

+6

您可能非常接近最大堆栈大小,GDB会将infor插入到堆栈中以帮助调试...无论如何,这将是我的猜测... – Goz

+0

Heisenbug也可能由第42行中的未初始化变量产生。 – wildplasser

+0

你确定它在入口*上崩溃吗?如果将1000更改为更低的值,会发生什么情况? –

回答

1

你可以检查ulimit -s。 你可以在这里发布你的程序,以便我们可以看到你在这个函数中做什么。

相关问题