【问题标题】:PyCharm: debugging line by line?PyCharm:逐行调试?
【发布时间】:2020-10-19 19:53:13
【问题描述】:

我正在为我的 Python IDE 使用 PyCharm(社区版)。我希望程序以逐行方式进行调试。所以我不想将每一行都设置为断点......有没有办法可以做到这一点?

【问题讨论】:

标签: python pycharm


【解决方案1】:

正如@Cyber​​ 所提到的,debugging hotkeys 将让您在遇到断点并在某处停止后,逐行执行、进入函数调用等。

如果你真的想单步执行每一行,你可以在代码最开始的地方设置一个断点。如果您在代码中使用 main() 函数,例如:

def main():
    ....    

if __name__ == '__main__':
    main()                  # Breakpoint here, 'Step Inside' to go to next line

然后您可以在调用main() 时设置断点。 (如果不是,您可能想尝试这种方法。)

我要指出的另一件事是 PyCharm 易于忽略的条件断点功能。如果你在编辑器的装订线区域右击断点符号,你可以输入一个条件,比如n > 10;断点仅在执行该行并满足条件时触发。例如,当您尝试在递归函数中调试代码问题时,这可以大大简化事情。

我知道最后一部分并不是您真正想要的,但是随着您的代码库变得越来越大,遍历每一行可能会非常耗时。您可能希望更多地关注单元测试和大型项目的日志记录。

【讨论】:

    【解决方案2】:

    要在调试模式下运行,请按“错误”按钮(或 Shift + F9)。

    跳过 - F8

    步入-F7

    走出去 - Shift+F8

    跳到下一个断点(或结束) - F9

    【讨论】:

    • 好,但是不设置新断点可以向前走一步吗?
    • Step over (F8) 使您移至下一行。如果您不在函数调用中,Step into (F7) 也能达到同样的效果。
    【解决方案3】:

    pdb 模块只需要你程序中的两行代码就可以逐行执行。

    import pdb      # Insert this as the first line of your program
    
    pdb.set_trace() # Insert this once in your program to step through it
    
    # code you want to step into
    

    This youtube video 6 分钟解释一切。

    【讨论】:

      【解决方案4】:

      如上所述,您可以使用热键,或者,您可以使用调试器 UI:

      顶部的蓝色箭头可让您跨过、跨入或跨出。

      【讨论】:

        猜你喜欢
        • 2012-06-19
        • 2011-12-12
        • 2010-12-17
        • 2011-09-14
        • 1970-01-01
        • 2019-10-30
        • 2011-11-23
        • 2013-04-12
        • 2020-07-22
        相关资源
        最近更新 更多