每次执行pthread更改时,有什么办法可以让gdb暂停?
假设我有两个POSIX线程(线程A和线程B)正在运行,我希望gdb在挂起线程A并且线程B继续执行时停止(反之亦然)。
答案 0 :(得分:4)
我希望gdb在挂起线程A并且线程B继续执行时停止
您的问题假定是单核计算机,现在非常罕见。
如果你有一个多核CPU,那么两个 A和B将同时执行,你的问题毫无意义。
即使假设您正在单核CPU上执行,您要求的功能(我预期)也大多无用:典型的多线程程序在到达之前会在两个线程之间切换数万次任何“有趣”的代码。当然你不想continue
10,000次?
调试多线程代码时,通常需要assert
各种不变量在整个程序执行期间保持不变。设置断点和单步执行很少有助于多线程调试。