gdb:在多线程程序中调用函数而不进行线程处理 我用GDB调试多线程C++程序。下面是我想要实现的调试流程: 运行到断点,然后暂停所有线程的执行 使用disable命令禁用[断点] 调用函数(在我的程序中定义)打印向量的状态(同时暂停其他线程)

gdb:在多线程程序中调用函数而不进行线程处理 我用GDB调试多线程C++程序。下面是我想要实现的调试流程: 运行到断点,然后暂停所有线程的执行 使用disable命令禁用[断点] 调用函数(在我的程序中定义)打印向量的状态(同时暂停其他线程),c++,multithreading,gdb,C++,Multithreading,Gdb,但是,当我多次调用打印系统状态的函数时,数据结构的值会发生变化。除非我有其他的bug,否则这一定意味着在我的打印功能运行时其他线程正在运行 问题: 执行调用命令时,其他线程是否继续执行 在gdb中 假设是这样的话,有没有一种方法可以让我禁用它 当我通过call 命令 请参阅@KostasRim的评论--打开调度程序锁定以实现所需的行为()。默认情况下,其他线程在单步执行、函数调用等过程中运行。这有帮助吗?@KostasRim是的,这正是我需要的将计划程序锁定设置为打开状态执行我想要的操作

但是,当我多次调用打印系统状态的函数时,数据结构的值会发生变化。除非我有其他的bug,否则这一定意味着在我的打印功能运行时其他线程正在运行

问题:

  • 执行
    调用
    命令时,其他线程是否继续执行 在gdb中
  • 假设是这样的话,有没有一种方法可以让我禁用它 当我通过
    call
    命令

  • 请参阅@KostasRim的评论--
    打开调度程序锁定
    以实现所需的行为()。默认情况下,其他线程在单步执行、函数调用等过程中运行。

    这有帮助吗?@KostasRim是的,这正是我需要的<代码>将计划程序锁定设置为打开状态执行我想要的操作