在使用 Apache Zookeeper C 运行时库调试应用程序时,我在 GDB 中使用默认的全停止模式设置断点时遇到了问题。由于 Zookeeper 线程无法运行,服务器将使会话超时,从而删除您可能创建的任何临时 znode。使用不间断模式我可以防止这种情况发生,但我失去了能够检查任何非 Zookeeper 线程状态的便利。
GDB 中是否有一种方法可以指定当遇到断点时一个(或多个)线程将继续在应用程序中运行,但其他线程将停止运行?这样我就可以检查我关心的线程的状态,而忽略那些我想在后台运行的线程的状态。
编辑:这本质上是不停止 gdb 中所有线程的重复。在非停止模式下使用后台命令的解决方案基本上解决了我的问题,因为我可以随时停止线程并异步重新启动它们,所以也许我们应该关闭这个。