gpt4 book ai didi

python - 任何 Python IDE 都支持在调试器的断点处停止

转载 作者:行者123 更新时间:2023-11-28 18:19:49 25 4
gpt4 key购买 nike

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

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

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

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

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

我是一名来自 Matlab 的开发人员,在 Matlab 中,无论函数是如何被调用的,从控制台,从调试器。如果它有一个断点,它就会停止。

我阅读了有关此主题的过去线程,但没有找到任何解决方案。我还尝试了最新的 pycharm 社区和最新的 pydev,但没有成功。我还看到 visual studio 做不到。

这是Python固有的,技术上做不到吗?

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

最佳答案

我关注了这个问题,发现没有人回答,我也想到了这个功能,所以我开始通过谷歌挖掘 and found your old question :)

TL;DR - 你不能那样做

(我尝试使用 PyCharm、Visual-Studio 和 Eric Python IDE)。

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

我的方法

如果你有 2 个函数并且你想调试它们:

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_varchild 函数:

  1. 将断点放在评论所在的位置
  2. 运行脚本
  3. 当断点停止时,检查你的dummy_debuggable_var
  4. step-into(在 PyCharm 上 - F7)
  5. 检查你的 child 函数

当您在 child 函数中时,您可以在 debugger window 上查看 PyCharm 的帧堆栈选项卡。 , 这会让您跳回到 parent 的框架并检查它。

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

关于python - 任何 Python IDE 都支持在调试器的断点处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45902890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com