Python--pdb

作用:
  • Python的交互式调试工具
  • 可以暂停程序,查看变量值,逐步监控程序执行
Python版本:
  • 1.4及以后版本
函数定义:
  • pdb.run() #表达式为一个可以由Python解释器计算的串表达式
  • pdb.runeval()
  • pdb.set_trace() #用于在程序中启用调试工具,set_trace为函数,可以再程序中的任意位置调用;可以用于在程序异常时的调试
  • pdb.pm() #支持事后剖析调试,用于解释器中查找traceback,在调用栈中出现异常的位置启动调试工具
  • pdb.post_mortem() 
  • 导航工具:
    • where (缩写为w) #获取当前正在执行哪一行,以及程序在调用栈中的哪个位置
    • list #查看当前位置更多的上下文,默认会将前后各5行内容显示出来
    • list lineNum #显示指定行号(lineNum)前后各5行内容
    • list startPos endPos #输出行号从startPos到endPos之间的所有代码行,包含起始位置
    • up | down #在调用栈中前后移动
    • args #会打印当前活动函数的所有参数
    • p expr #在调试工具中执行表达式expr,允许执行任意的表达式,包括修改当前环境的变量
    • print expr #将表达式传到解释器中执行,并输出执行结果
    • pp lines #使用pprint格式化值以便美观的打印
    • step #单步执行程序,在下一条语句暂停
    • next #不同于step的是,next不会进入函数调用内部
    • until #类似于next,会一直执行到同一个函数中行号大于当前行号的一行,说明until可以用于在循环尾部跳出循环体
    • return #绕开函数的一个捷径,会一直执行到当前函数的renturn语句为止
  • 断点
    • break lineno #在行号为lineno的地方设置断点
    • c(ontinue) #继续执行直到下一个断点
    • break func #将断点设置在函数func的第一行
    • break python_file.py:lineno #在另一个文件python_file.py的第lineno行处设置断点
    • break #不带参数的break命令会罗列出所有断点的信息
    • disable num #将编号为num的断点暂时禁止掉,不让其发挥作用
    • enable num #启用编号为num的断点
    • clear num #清楚编号为num的断点
    • tbreak linenum #在行号为linenum的位置设置临时断点,临时断点在第一次出现后会被自动删除
    • break linenum, condition_expr #设置条件断点,当满足condition_expr时程序在断点处暂停
    • condition num condtion_expr #对已经存在的编号为num的断点设置条件
    • ignore break_num numer #忽略编号为break_num的断点number次,显示的将忽略次数设置为0可以立即启用该断点
    • cmmands break_num commands_expr #为编号为break_num的断点设置触发动作,commands_expr以end结束
    • jump lineno #调到lineno行开始执行。前跳:在当前行与lineno之间所有代码将不被执行;后跳:会让跳过的代码行重复执行一次
    • run #使用run命令重启程序
  • 别名,可以通过为一个复杂的调试命令设置别名,从而简化重复输入工作
    • alias new_name expr #为expr设置别名new_name
    • unalias #删除一个别名的定义
  • 配置,可以通过将调试命令保存在配置文件中,从而使得每次启用调试时自动加载调试命令,从而减少重复输入调试命令的工作,用户主目录下的.pdbrc
应用实例:
  • 从命令行运行
  1. python -m pdb pdb_script.py
  • 在解释器中运行
  • 在程序中运行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值