【发布时间】:2020-10-19 19:53:13
【问题描述】:
我正在为我的 Python IDE 使用 PyCharm(社区版)。我希望程序以逐行方式进行调试。所以我不想将每一行都设置为断点......有没有办法可以做到这一点?
【问题讨论】:
-
你可以这样做。 See the Pycharm debugging hotkeys。可以
step over函数,step into等。
我正在为我的 Python IDE 使用 PyCharm(社区版)。我希望程序以逐行方式进行调试。所以我不想将每一行都设置为断点......有没有办法可以做到这一点?
【问题讨论】:
step over函数,step into等。
正如@Cyber 所提到的,debugging hotkeys 将让您在遇到断点并在某处停止后,逐行执行、进入函数调用等。
如果你真的想单步执行每一行,你可以在代码最开始的地方设置一个断点。如果您在代码中使用 main() 函数,例如:
def main():
....
if __name__ == '__main__':
main() # Breakpoint here, 'Step Inside' to go to next line
然后您可以在调用main() 时设置断点。 (如果不是,您可能想尝试这种方法。)
我要指出的另一件事是 PyCharm 易于忽略的条件断点功能。如果你在编辑器的装订线区域右击断点符号,你可以输入一个条件,比如n > 10;断点仅在执行该行并满足条件时触发。例如,当您尝试在递归函数中调试代码问题时,这可以大大简化事情。
我知道最后一部分并不是您真正想要的,但是随着您的代码库变得越来越大,遍历每一行可能会非常耗时。您可能希望更多地关注单元测试和大型项目的日志记录。
【讨论】:
要在调试模式下运行,请按“错误”按钮(或 Shift + F9)。
跳过 - F8
步入-F7
走出去 - Shift+F8。
跳到下一个断点(或结束) - F9
【讨论】:
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 分钟解释一切。
【讨论】: