2

我试图找出应用程序中的崩溃。崩溃发生在压力测试上。崩溃时VIRT大约是 19 Gigs 和RES2.1 Gigs。值得一提的是,该系统具有 3 Gigs 的物理内存和 5 Gigs 的交换空间。

在应用程序崩溃的地方,即使加载了正确的符号,核心转储也不会在堆栈 strace 中提供任何符号。但我注意到一个奇怪的行为,调用堆栈的底部为空。

(gdb) bt
#0  0x00002adaea9df74d in ?? ()
#1  0x00002aacc94ff700 in ?? ()
#2  0x00000000004f9023 in ?? ()
#3  0x00002aae2b8054e0 in ?? ()
#4  0x00002aae6d9420a0 in ?? ()
#5  0x00002aacc94ff700 in ?? ()
#6  0x0000000000486312 in ?? ()
#7  0x00002aae2b8054e0 in ?? ()
#8  0x00002aacc94ff700 in ?? ()
#9  0x00002aacc94ff440 in ?? ()
#10 0x00002aae6d9420a0 in ?? ()
#11 0x0000000000000000 in ?? ()

这可能是什么原因?是因为堆栈损坏了吗?

4

1 回答 1

2

最可能的选择是某些东西破坏了您的调用堆栈:这可以解释为什么您的调试器显示垃圾以及为什么您的应用程序崩溃。我建议尝试在valgrind下运行您的代码。

于 2012-08-01T07:59:02.220 回答