在线程切换时停止gdb

时间:2011-11-03 07:14:05

标签: gdb pthreads qnx

每次执行pthread更改时,有什么办法可以让gdb暂停?

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

1 个答案:

答案 0 :(得分:4)

  

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

您的问题假定是单核计算机,现在非常罕见。

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

即使假设您正在单核CPU上执行,您要求的功能(我预期)也大多无用:典型的多线程程序在到达之前会在两个线程之间切换数万次任何“有趣”的代码。当然你不想continue 10,000次?

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