zoukankan      html  css  js  c++  java
  • PDB调试Python程序

    pdb是python内置的调试工具, 它可以在终端中调试Python程序, 这允许pdb在很多无法安装IDE的服务器上使用.

    虽然远程调试使用广泛, 但在必要的时候(比如难以在本地搭建运行环境)pdb仍然是一个便利的选择.

    我们可以在python源代码中设置断点:

    import pdb
    
    def func():
        for i in range(100):
            pdb.set_trace() # set breakpoint
            print(i)
    

    随后执行源文件, pdb.set_trace()会如同一个断点阻塞当前Python进程进入pdb终端.或者使用python -m pdb test.py指令从第一行开始调试进入.

    test.py(5)<module>()
    -> print(i)
    (Pdb)
    

    pdb终端会显示文件名, 行号,当前文件, 下一行指令等信息.并等待用户指令:

    • c / continue: 继续执行, 直至进程完成或被断点阻塞

    • n / next: 执行下一条指令, 若遇函数直接得到函数返回值, 不进入

    • s / step: 步进执行下一条指令,若遇函数则进入执行

    • r / return: 跳出当前函数, 返回调用栈的上一层

    • b / breakpoint [<line_num>] : 在指定行(下一条指令处)设置一个断点:b, b 5

    • a / args: 显示当前函数的参数

    • q / exit: 中止进程执行

    • l / list: 显示下一条指令所在的代码块

    • pp <obj_name>: 显示某个对象的值

    • disable / enable <line_num>: 禁用/启用某行上的断点

    • condition [<line_num>] <condition>: 在指定行上设置条件断点.如:condition 5 i==3

    • !<expr>: 动态执行一条语句, 可以是赋值等指令: !i=2, !1==1.

    参考资料:

  • 相关阅读:
    LaTeX —— 特殊符号与数学字体
    LaTeX —— 特殊符号与数学字体
    实战caffe多标签分类——汽车品牌与车辆外观(C++接口)[详细实现+数据集]
    家书与家训
    家书与家训
    Handler总结
    (step5.1.3)hdu 1213( How Many Tables——1213)
    JavaScript+XML+VBA导出报表初步构想
    XML学习总结
    JSP 9 大内置对象详解
  • 原文地址:https://www.cnblogs.com/Finley/p/6071463.html
Copyright © 2011-2022 走看看