【问题标题】:Drop frame while debugging?调试时丢帧?
【发布时间】:2020-11-20 14:02:14
【问题描述】:

我想知道 PyCharm / Intellij 中是否可以使用带有 Python 插件的丢帧。

这是按钮的外观(它没有显示在调试工具栏上,所以我认为它不适用于 PyCharm)--> How to step one step back in IntelliJ?

我正在尝试做的是在我发现问题时重新播放一个功能,以进行更多检查。 (“及时回来”)

(我之前在 Eclipse 和 Java 中使用过它,如果您对其进行编辑并保存更改,它将重播当前范围。当然,在多次运行函数后,全局范围仍然更改,但在大多数情况下它非常有用)

感谢告知!

【问题讨论】:

    标签: python intellij-idea pycharm


    【解决方案1】:

    从 2017.3.3 版开始,没有 IntelliJ 中的丢帧功能。上面提到的 pycharm 文档似乎是错误的。

    【讨论】:

    • 如果你在 python 控制台中运行你的脚本,你可以通过在其他地方暂停来实现半刷新。然后解释器将重新加载已更改的文件而不是暂停的脚本。
    【解决方案2】:

    由于您想“重新执行函数”,因此“评估表达式”非常适合此目的。我调试的时候用的很多。它基本上允许在运行时使用该上下文中的变量和函数运行任何代码。

    它是调试窗口最右边的图标。

    在出错的那一行前打断点,调试程序,当它到达断点的顶部时,点击“Evaluate Expression”图标,复制有问题的函数,粘贴并运行它。

    【讨论】:

    • 非常感谢!现在很好,它是一个更好的控制台。 sn -p 完成后,您可以将鼠标悬停在变量上,但不能放置断点或逐行运行。我希望 Jetbrains 尽快为 PyCharm 实现回放。无论如何感谢您的提示!
    • 丢帧与评估表达式完全不同。
    • 它是不同的,但它可以用来评估我们所处的功能,从相同的参数,它可能响应与丢帧相同的需求。
    【解决方案3】:

    PyCharm 2017.2 似乎添加了您正在寻找的功能。 documentation 描述了 Debug Stepping Toolbar 上的“Drop frame button”:

    中断执行并返回到方法执行的初始点。在此过程中,它会从堆栈中删除当前的方法帧。

    【讨论】:

    • 根据this IntelliJ post,@ying 是正确的:上面引用的 PyCharm 文档是错误的,从 2017.3 版本开始可以使用 Jump to Cursor 作为解决方法。该帖子包含一个链接,供有兴趣关注“Drop to Frame”功能请求状态的人使用。
    • 您应该将此评论作为答案。你会得到我的支持。
    猜你喜欢
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 2011-02-12
    • 2015-05-19
    相关资源
    最近更新 更多