0
如标题中所示。我可以同时在gdb中调试多个进程和/或线程吗?也就是说,一旦碰到断点就停止所有这些进程?
如果其他线程/进程继续全速执行,有时进程或线程的逐步调试变得不方便。
如果可以通过这种方式调试两个进程,这两个进程都是独立于bash(而不是另一个的子进程)启动时的奖励。
如标题中所示。我可以同时在gdb中调试多个进程和/或线程吗?也就是说,一旦碰到断点就停止所有这些进程?
如果其他线程/进程继续全速执行,有时进程或线程的逐步调试变得不方便。
如果可以通过这种方式调试两个进程,这两个进程都是独立于bash(而不是另一个的子进程)启动时的奖励。
对于线程,这应该是已经发生。
默认情况下,GDB在模式下执行劣势模式。在这种模式下,一旦一个线程停止(或者因为它收到一个信号,或者因为它遇到了断点),GDB就会停止所有线程。另见this answer。
尽管GDB还支持多个下级,但我不认为有任何机制可以执行“停止所有下级”,等同于内置到GDB中的“停止所有线程”。
然而,你可以平凡实现与连接到您的断点命令:
(gdb) break foo.c:1234
(gdb) commands 1
shell kill -STOP 4321 # stop the other inferior
end
如果奖金是可以调试这样两个过程时,他们都从bash的独立启动
当然:您可以将两个进程都附加到当前的GDB((gdb) help attach
)或单独进程。它们从哪里开始并不重要。
https://stackoverflow.com/q/856488/72178的副本? – ks1322