2

每次执行的 pthread 发生变化时,有什么方法可以让 gdb 停止?

假设我有两个 POSIX 线程(线程 A 和线程 B)正在运行,并且我希望 gdb 在线程 A 被挂起并且线程 B 继续执行(反之亦然)时停止。

4

1 回答 1

4

当线程 A 被挂起并且线程 B 继续执行时,我希望 gdb 停止

您的问题假设一台单核计算机,这在当今极为罕见。

如果你有一个多核 CPU,那么A 和 B 将同时执行,你的问题没有意义。

即使假设您在单核 CPU 上执行,您所要求的功能(我预计)也几乎没有用:一个典型的多线程程序会在两个线程之间切换数万次,然后才能达到任何“有趣的“ 代码。你肯定不想continue10,000次吗?

在调试多线程代码时,通常您希望assert在整个程序执行过程中保持各种不变量。设置断点和单步执行很少有助于多线程调试。

于 2011-11-03T14:28:02.103 回答