任何Python IDE都支持从调试器

时间:2017-08-27 08:03:24

标签: python debugging pycharm pydev breakpoints

我正在寻找以下(恕我直言,非常重要)功能:

  1. 假设我有两个函数fa()和fb(),它们都有一个断点。

  2. 我现在在fa函数的断点处停止了。

  3. 在交互式调试器控制台中,我调用fb()。

  4. 我想在fb断点处停止,但不幸的是,pb()运行但忽略了断点。 另一个SO线程中的某个人称之为“嵌套断点”。

    我是来自Matlab的开发人员,无论是如何调用函数,从控制台调用函数,都来自Matlab。如果有断点则停止。

    我读过关于这个主题的过去的帖子,但没有找到任何解决方案。 我也尝试了最新的pycharm社区和最新的pydev,没有运气。 我还读到视觉工作室无法实现它。

    这是Python固有的,技术上无法完成吗?

    是否有支持它的技术/其他IDE?

2 个答案:

答案 0 :(得分:2)

我按照这个问题看到没有人回答,我也考虑过这个功能所以我开始挖掘谷歌 and found your old question :)

TL; DR - 你不能那样做

(我尝试过PyCharm,Visual-Studio和Eric Python IDE)。

我的猜测是不行,因为它增加了调试的复杂性 - 当你走到下一行时发生了什么?如果你有很多线程/进程?可变类型会发生什么?

我的方式

如果您有两个功能,并且想要同时调试它们:

def parent():
    dummy_debuggable_var = 1
    print('Running child() function')
    out = child(dummy_debuggable_var) #BP1 is here
    print(out)

def child(x):
    print('Calculating ...')
    return x+2

您的目标是调试dummy_debuggable_var以及child函数:

  1. 将评分为
  2. 的断点放在哪里
  3. 运行脚本
  4. 当断点停止时,请检查dummy_debuggable_var
  5. step-into(关于PyCharm - F7
  6. 检查您的child功能
  7. 当你进入child功能时,可以查看debugger window上PyCharm的帧堆栈标签,这样你就可以跳回parent的框架了。检查它。

    这是一个更顺序的过程,而不是平行过程,但它很简单且有效。

答案 1 :(得分:-1)

看一下Eric Python IDE和VSC(Visual Studio Code)