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.

    参考资料:

  • 相关阅读:
    mysql无法启动-You may have to recover from a backup
    mysql导出索引sql 导出索引创建语句
    Padavan路由器设置桥接多路由器同WIFI方法
    挖的坑还是要填的
    I'm Back
    40行加速头文件
    一些XJOI博客的密码
    p进制线性基填坑
    Dirichelet卷积的k次方根
    用pb_ds写一颗线段树
  • 原文地址:https://www.cnblogs.com/Finley/p/6071463.html
Copyright © 2011-2022 走看看