我正在寻找以下(恕我直言,非常重要)功能:
假设我有两个函数fa()和fb(),它们都有一个断点。
我现在在fa函数的断点处停止了。
在交互式调试器控制台中,我调用fb()。
我想在fb断点处停止,但不幸的是,pb()运行但忽略了断点。 另一个SO线程中的某个人称之为“嵌套断点”。
我是来自Matlab的开发人员,无论是如何调用函数,从控制台调用函数,都来自Matlab。如果有断点则停止。
我读过关于这个主题的过去的帖子,但没有找到任何解决方案。 我也尝试了最新的pycharm社区和最新的pydev,没有运气。 我还读到视觉工作室无法实现它。
这是Python固有的,技术上无法完成吗?
是否有支持它的技术/其他IDE?
答案 0 :(得分:2)
我按照这个问题看到没有人回答,我也考虑过这个功能所以我开始挖掘谷歌 and found your old question :)
(我尝试过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
函数:
dummy_debuggable_var
step-into
(关于PyCharm - F7 )child
功能当你进入child
功能时,可以查看debugger window上PyCharm的帧堆栈标签,这样你就可以跳回parent
的框架了。检查它。
这是一个更顺序的过程,而不是平行过程,但它很简单且有效。
答案 1 :(得分:-1)
看一下Eric Python IDE和VSC(Visual Studio Code)