【问题标题】:PyCharm - how to suspend all threadsPyCharm - 如何挂起所有线程
【发布时间】:2016-06-16 19:21:02
【问题描述】:

我们使用 PyCharm 5.0.1 进行多线程调试。
当它在断点处停止时,只有特定线程停止,而其他所有线程继续。这使得“冻结时刻”和检查参数值以及其他线程的当前状态变得困难。

是否可以在其中一个线程在断点处停止时暂停所有线程?

这在最新的 Pycharm 2016 或 [最新] Pycharm 版本上是否可行?

【问题讨论】:

  • 为什么问题的标题使用“PyCharm 3”,而问题的正文显示 PyCharm 5.0.1?
  • 你说得对,已解决,谢谢。
  • 仅供参考,刚刚发布了一个全新的 Pycharm 版本:2016.1,尚未测试它是否对此有所帮助,但它确实在发行说明中列出了许多用于调试的改进。
  • 它是一个开放且非常重要(恕我直言)的功能,因此将问题更改为还询问最新版本的 Pycharm....

标签: python multithreading debugging pycharm suspend


【解决方案1】:

根据this thread,这在 PyCharm 2016.2 之后是可能的:

Elizaveta Shashkova 2016 年 7 月 27 日:

PyCharm 2016.2 中出现了新特性:断点线程 暂停政策。你可以去运行|查看断点,选择 断点并更改其线程挂起策略:“线程”或“全部”。 您还可以为所有断点设置默认策略。

【讨论】:

  • 这并不总是有效。例如,如果您的一个线程正在 C 级函数中等待(例如 socket.recv()),那么即使设置了“全部”,受影响的线程也不会被中断,并且堆栈窗格将显示“非挂起的帧不可用状态”。
猜你喜欢
  • 1970-01-01
  • 2011-04-01
  • 2015-09-05
  • 1970-01-01
  • 2013-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多