首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gdb:在多线程程序中调用函数而不进行进程线程

gdb:在多线程程序中调用函数而不进行进程线程
EN

Stack Overflow用户
提问于 2019-07-09 20:58:34
回答 1查看 265关注 0票数 3

我正在用gdb调试多线程C++程序。下面是我想要实现的调试流程:

  1. 运行到断点,然后暂停所有线程的执行。
  2. 使用disable命令禁用断点
  3. 调用一个函数(在我的程序中定义)以打印向量的状态(同时保持其他线程暂停)

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

问题:

  1. 在gdb中执行call命令时,其他线程是否继续执行?
  2. 假设是这样的话,是否有一种方法可以在我通过call命令自省程序状态时使线程暂停呢?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-10 02:41:28

参见@KostasRim的评论-- set scheduler-locking on实现了期望的行为(002dStop-Mode.html)。默认情况下,其他线程在步进、函数调用等过程中运行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56960422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档