如果到达断点(或在 GDB shell 中按下 Ctrl+C),GDB 通常会停止所有线程。我知道存在诸如 scheduler-locking 和 schedule-multiple 之类的命令,但我认为不可能让已定义的线程在后台运行,同时调试另一个线程。
最佳答案
如果您的目标支持异步模式,您可以使用set target-async on
启用异步模式。然后,您可以使用命令指定后台执行。例如,
continue&
可用于运行单线程,并且
interrupt [-a]
暂停单个线程或整个程序的执行。
结合不间断模式,您可以检查单个线程,而其他线程继续在后台运行:
# If using the CLI, pagination breaks non-stop.
set pagination off
# Finally, turn it on!
set non-stop on
# Before debugging is started!
关于c - 不停止 gdb 中的所有线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3666331/