使用MinGW GDB版本7.6,得到很多像这样的回溯:
(gdb) bt #0 0x000000007703d256 in ntdll!RtlEnterCriticalSection () from C:\Windows\SYSTEM32\ntdll.dll #1 0x0000000000000000 in ?? ()
这不是很有用。
为什么是这样? 有没有办法得到更有用的东西? 当我得到这个回溯时,试图找出一个错误发生的复杂的multithreading程序是非常痛苦的。
我用MinGW 64遇到同样的问题。使用编译器开关-g3 -Og最后显示了所有的回溯。
原因可能是gdb有一个“当前”线程的概念,它是随机选择的。
你可以通过发出gdb命令info threads
来看你的程序当前正在执行什么info threads
。 通过thread <num>
切换“当前”线程。 尝试再次获得有意义的回溯。
也要确定
-g
)编译的,