【问题标题】:how to create a conditional break point in ipdb如何在 ipdb 中创建条件断点
【发布时间】:2019-11-16 09:39:21
【问题描述】:

我在 spyder 中使用 python 版本 3.7.1。

当我运行一个脚本并且我需要调试时,我只需在错误发生之前输入该行下方的行。

断点()

到目前为止,对于我的基本需求,这已经足够了。我可以在 ipdb> 命令行部分看到变量或类型命令的当前值。

但是我不知道如何使用条件断点?我试过阅读各种网站,但不太明白我需要做什么。他们也倾向于提到 pdb 而不是 ipdb。如何使用条件断点?

【问题讨论】:

  • 你试过把它放在 if 语句下吗? if my_condition: breakpoint()
  • 不,我知道这会起作用,但我正在尝试习惯在 python 中使用调试。在其他语言中,这似乎更容易一些
  • 条件断点对于 IDE 来说真的很容易,但对于 ipython,我猜想它更难实现(或超出项目范围),看看它是如何成为 Python 控制台的前端。如果您想更好地控制代码流,您应该尝试 PyCharm Community Edition(免费),或者如果您是学生,您甚至可以免费使用 PyCharm Professional。
  • pdb 本身有一个语法,你可以在ipdb 中使用它:stackoverflow.com/a/55159862/71631

标签: python ipython spyder


【解决方案1】:

我认为@billc 的上述评论正是 OP 所寻找的。在控制台中,您输入

b <line number>, <condition to break under>

例如: b C:\Users\powlo\project\tests\TestCase.py:350, view.view_name == 'app.views.export' Example from @powlo

官方文档在这里 https://docs.python.org/3/library/pdb.html#pdbcommand-break

【讨论】:

    猜你喜欢
    • 2010-12-16
    • 2010-11-05
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2020-05-03
    • 2011-11-03
    • 1970-01-01
    相关资源
    最近更新 更多