Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么堆栈的末尾是空的?_C++_C_Stack_Stack Trace_Coredump - Fatal编程技术网

C++ 为什么堆栈的末尾是空的?

C++ 为什么堆栈的末尾是空的?,c++,c,stack,stack-trace,coredump,C++,C,Stack,Stack Trace,Coredump,我试图找出应用程序中的崩溃。碰撞发生在压力测试时。崩溃时,VIRT约为19千兆,而RES约为2.1千兆。值得一提的是,系统的物理内存为3 Gig,交换空间为5 Gig 当应用程序崩溃时,即使加载了正确的符号,核心转储也不会在堆栈strace中提供任何符号。但我注意到一个奇怪的行为,调用堆栈的底部为null (gdb) bt #0 0x00002adaea9df74d in ?? () #1 0x00002aacc94ff700 in ?? () #2 0x00000000004f9023

我试图找出应用程序中的崩溃。碰撞发生在压力测试时。崩溃时,
VIRT
约为19千兆,而
RES
约为2.1千兆。值得一提的是,系统的物理内存为3 Gig,交换空间为5 Gig

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

(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 ?? ()

可能的原因是什么?是因为堆栈已损坏吗?

最有可能的选择是调用堆栈被破坏:这可以解释调试器显示垃圾的原因和应用程序崩溃的原因。我建议您尝试在下面运行代码。

如果您在问题中添加一些相关技术,例如编程语言、操作系统等,可能会有所帮助。好的,我会这样做。:)。但是我有一段历史,当人们为同一类型的问题删除编程语言标记时。@RituparnaKashyap如果没有意义,他们会删除标记。例如,你的程序在C++和C程序中是C++的,但是所有的LIBS都在C中查看,我们做ValgRAND测试,低负载。一切都很好。我们在重载情况下发生了这次事故,在运行2-3天后也发生了同样的事故。如果我们用valgrind分析同样的情况,那么获得测试用例将需要很长时间。无论如何,我们将尝试它。除此之外,我们还可以监视任何其他/OS参数。您的编译器可能有强化/安全选项来保护堆栈,这会使您在调用堆栈被破坏时应用程序出错。这可以帮助您调试此。