我正在 Linux 上调试静态多线程 x86-64 C++ 应用程序。
我可以在函数上设置断点并停止它们,我可以一步一步地走过函数体。但是当我尝试进入另一个函数时,gdb 并没有在它的开始处停止,它似乎只是继续执行。当我中断程序执行时,gdb 进入损坏状态并变得不可用:
(gdb) bt
Target is executing.
(gdb) c
Continuing.
Cannot execute this command while the selected thread is running.
(gdb)
作为一种解决方法,我可以使用stepi
多次而不是step
,stepi
按预期工作。这种行为的原因可能是什么?除了使用还有什么解决方法stepi
吗?我正在使用 gdb 7.6 和 gcc 4.7.1。