使用MinGW GDB 7.6版,可以获得很多这样的回溯:
(gdb) bt
#0 0x000000007703d256 in ntdll!RtlEnterCriticalSection ()
from C:\Windows\SYSTEM32\ntdll.dll
#1 0x0000000000000000 in ?? ()
哪个不太有用。
这是为什么?反正有没有更有用的东西?当这个是我得到的回溯时,尝试找出一个复杂的多线程程序正在做什么是非常痛苦的。
答案 0 :(得分:2)
我使用MinGW 64遇到了同样的问题。使用编译器开关 -g3 -Og 终于很好地展示了所有的回溯。
答案 1 :(得分:0)
原因可能是gdb有一个“当前”线程的概念,它是随机选择的恕我直言。
您可以通过发出gdb命令info threads
来查看程序当前正在执行的线程。
通过thread <num>
切换“当前”线程。
尝试再次获得有意义的回溯。
还要确定
-g
),