如何在Python调试器(PyCharm)中执行n步(迭代)?

Bor*_*lis 2 python debugging conditional-breakpoint pycharm

我的 Python 调试器中有一个断点。我正在使用 PyCharm。我想迭代 100 次以达到我想要调试的程度。

现在我可以按 100 次恢复程序,但是有没有办法只执行一个命令来在断点上运行 n 次。

bad*_*der 7

您可以在条件断点中使用函数来计算迭代次数,例如:

条件断点图像

条件断点可以调用一个函数,该函数除了返回布尔值之外,还计算循环迭代的次数。

def your_counter(stop):
    global count
    count = count + 1
    if stop == count:
        # count = 0 for periodic break
        return True
    else:
        return False
Run Code Online (Sandbox Code Playgroud)

所示的解决方案适用于单行条件可能不切实际和/或需要在外部实现循环计数器时的情况。由于断点条件是编程性的,您可以将其实现为定期中断,或者根据您想要应用的任何系列/频率标准。

自定义条件将在您想要的精确迭代处中断,在完成“单步调试”后,按恢复、停止、“运行到光标”,或右键单击它禁用断点(实际上,这会让您退出循环)。

您还可以通过在“变量监视”中进行编辑来在调试过程中更改任何变量的值。


Gio*_*ano 5

PyCharm 提供了在特定断点上添加条件的可能性。
此功能称为条件断点,您可以在此处找到文档。

我认为这就是您正在寻找的,因为这样您就可以仅在特定条件下启用断点。