我试图在Eclipse CDT中调试多线程OpenGL程序以找到随机崩溃的来源,有时候我有随机的SIGTRAP和SIGSEGV信号,就像这个堆栈一样完整堆栈:
如何在调试器中查看完整堆栈以及这些信号的来源是什么?
我在MinGW和Windows x64上使用-g3
和-ggdb
标志进行编译。
编辑: 我从控制台运行GDB,结果类似:
#0 0x00007ffee8c230a2 in ntdll!RtlpNtMakeTemporaryKey () from C:\Windows\SYSTEM32\ntdll.dll
#1 0x00007ffee8c08d36 in ntdll!RtlZeroHeap () from C:\Windows\SYSTEM32\ntdll.dll
#2 0x00007ffee8bde1b7 in ntdll!memset () from C:\Windows\SYSTEM32\ntdll.dll
#3 0x00007ffee8c21f34 in ntdll!RtlpNtMakeTemporaryKey () from C:\Windows\SYSTEM32\ntdll.dll
#4 0x00007ffee8bdb24f in ntdll!memset () from C:\Windows\SYSTEM32\ntdll.dll
#5 0x00007ffee8b654a8 in ntdll!RtlFreeHeap () from C:\Windows\SYSTEM32\ntdll.dll
#6 0x00007ffee6fc1cb3 in msvcrt!_setjmp () from C:\Windows\system32\msvcrt.dll
#7 0x0000000006ecfd90 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)