如果达到断点(或者在GDB shell中按下Ctrl + C),GDB通常会停止所有线程.我知道像调度程序锁定和调度多次这样的命令存在,但我认为没有可能让一个定义的线程在后台运行而另一个被调试.
set target-async on如果目标支持异步模式,则可以使用它来启用异步模式.然后,您可以使用命令指定后台执行.例如,
continue&
Run Code Online (Sandbox Code Playgroud)
可以用来运行单个线程,和
interrupt [-a]
Run Code Online (Sandbox Code Playgroud)
暂停执行单个线程或整个程序.
结合不间断模式,您可以检查单个线程,而其他线程继续在后台运行:
# If using the CLI, pagination breaks non-stop.
set pagination off
# Finally, turn it on!
set non-stop on
# Before debugging is started!
Run Code Online (Sandbox Code Playgroud)