PDB—Python的调试器

我们可以通过非侵入式python -m pdb 文件名.py方法来调试脚本,当然也可以通过侵入式方法import pdb;pdb.set_trace();当看到了(pdb)代表正确打开了pdb

1.pdb的常用命令

1.查看源代码

l查看当前位置前后11行代码

ll查看当前函数或框架的所有源代码

2.添加断点

  1. b #1.不带参数表示查看断点设置#2.带参则在指定位置设置一个断点
  2. b lineno #lineno,断点添加到哪一行
  3. b filename:lineno #filename--文件名,断点添加到哪个文件
  4. b functionname #functionname:函数名,在该执行函数的第一行设置断点

3. 添加临时断点

  1. tbreak
  2. tbreak lineno
  3. tbreak filename:lineno
  4. tbreak functionname
  5. #参数同b
  6. #执行一次后自动删除

4.清除断点

  1. cl
  2. cl filename:lineno
  3. cl bpnumber [bpnumber ...] #bpnumber 断点序号(多个以空格分隔)

5.打印变量值

  1. p expression #expression Python表达式

6.逐行调试命令

  1. s #执行下一行(能够进入函数体)
  2. n #执行下一行(不会进入函数体)
  3. r #执行下一行(在函数中时会直接执行到函数返回处)

7.非逐行调试命令

  1. c #持续执行下去,直到遇到一个断点
  2. unt lineno #持续执行直到运行到指定行(或遇到断点)
  3. j lineno #直接跳转到指定行(注意,被跳过的代码不执行)

8.查看函数参数

a #在函数中时打印函数的参数和参数的值

9.打印变量类型

whatis expression #打印表达式的类型,常用来打印变量值

10.启动交互式解释器

interact #启动一个python的交互式解释器,使用当前代码的全局命名空间(使用ctrl+d返回pdb)

11.打印堆栈信息

w #打印堆栈信息,最新的帧在最底部。箭头表示当前帧

12.退出pdb

q