SIGTRAP后无法单步执行gdb中的程序

SIGTRAP后无法单步执行gdb中的程序,gdb,signals,mingw,Gdb,Signals,Mingw,使用mingw-gdb,当我试图在程序运行时使用中的方法中断程序时,gdb无法从中提取 我能得到的唯一回溯信息是 #0 0x00007fffbfccd881 in ntdll!DbgBreakPoint () from /c/WINDOWS/SYSTEM32/ntdll.dll #1 0x00007fffbfcf99fb in ntdll!DbgUiRemoteBreakin () from /c/WINDOWS/SYSTEM32/ntdll.dll #2 0x00007fffbd4730

使用mingw-gdb,当我试图在程序运行时使用中的方法中断程序时,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恢复

在目标进程中创建一个新线程,然后通过断点异常向调试器发送暂停执行的信号


您可以使用info threads列出所有可用线程,然后通过您的线程号切换到另一个线程。

您现在处于仅为DebugBreak创建的新线程中,因此您必须切换回其中一个线程。使用info threads作为列表,并使用线程您的线程号进行切换。@ssbssa您是对的,我刚刚测试了一个线程,它工作得很好。你能给我一个我能接受的正确答案吗?