使用mingw gdb,当我在程序运行时中断程序时(使用In GDB on MinGW, how do I make Ctrl-C stop the program?中的方法),gdb无法从那里开始。
我唯一可以获得的回溯信息是
#0 0x00007fffbfccd881 in ntdll!DbgBreakPoint () from /c/WINDOWS/SYSTEM32/ntdll.dll
#1 0x00007fffbfcf99fb in ntdll!DbgUiRemoteBreakin () from /c/WINDOWS/SYSTEM32/ntdll.dll
#2 0x00007fffbd473034 in KERNEL32!BaseThreadInitThunk ()
from /c/WINDOWS/System32/KERNEL32.DLL
#3 0x00007fffbfca1431 in ntdll!RtlUserThreadStart () from /c/WINDOWS/SYSTEM32/ntdll.dll
#4 0x0000000000000000 in ?? ()
如果我尝试逐步执行该程序,则会得到
Single stepping until exit from function ntdll!DbgUiRemoteBreakin,
which has no line number information.
,程序运行完成。我能够正常执行(在断点之后),但似乎无法使调试器从SIGTRAP中恢复
答案 0 :(得分:1)
DebugBreakProcess在目标进程中创建一个新线程,然后通过断点异常向调试器发送信号以暂停执行。
您可以使用info threads
列出所有可用的线程,然后通过thread YOUR_THREAD_NUMBER
切换到另一个线程。