Python PDB 调试

系统管理员 2022-12-07 12:28 216阅读 0赞

PDB

  • python内置的调试工具,Python Debugger
  • 支持断点、单步调试、支持流程控制、支持堆栈检查。
  • 支持源码嵌入,也可以事后进行调试。

源码嵌入调试

就是在源代码中嵌入pdb语法,进行打断点。这种

  1. import pdb
  2. def add(a,b):
  3. c = a + b
  4. pdb.set_trace()
  5. return c
  6. print(add(3,4))

事后进行调试

  1. # a.py
  2. def add(a,b):
  3. c = a + b
  4. return c
  5. print(add(3,4))
  6. # 事后执行a.py 进行调试
  7. python -m pdb a.py

PDB 基本指令

  • l 列出源码
  • b break设置断点,如 b 9, 就是设置第九行为断点;如b add 将add函数设置为断点
  • c 执行到下一个断点
  • cl 清除断点,cl 1 删除第一个断点;cl 9 删除第九行的断点;
  • tbreak 设置临时断点,如tbreak 3 设置第三行为临时断点,程序执行到断点处停下来 且会删除断点。

细节操作

  • n next 执行下一条命令。
  • s step 执行下一条命令,与n的区别是,s会进入到函数的内部
  • r return 执行到当前函数结束
  • c 继续执行,知道遇到下一个断点
  • j jump 设置下行执行的代码,j 13 执行执行到13行的位置
  • unt until 执行到下一行(跳出循环),或者是当前堆栈结束

堆栈操作

  • w (where) 打印当前执行堆栈
  • bt 打印当前执行堆栈
  • d down 执行跳转到当前堆栈的深一层
  • u up 执行跳转到当前堆栈的上一层

查看变量

  • args 查看所有变量
  • pp name 查看变量name

参考:https://mp.weixin.qq.com/s?src=11&timestamp=1600180311&ver=2586&signature=MUZJNcRSANmCItypYtUztnT7dp6r4nRm-H1EB-GYT3jLoVb62yYNGlMGbSzDXFN3cwrRnd5Qqh3lcJv5rSU4jN4iCzDGeXLvo0AEdBbibV7qEzeEmyGfiIc9ea27-hsX&new=1

发表评论

表情:
评论列表 (有 0 条评论,216人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python PDB 调试

    PDB python内置的调试工具,Python Debugger 支持断点、单步调试、支持流程控制、支持堆栈检查。 支持源码嵌入,也可以事后进行调试。

    相关 linux下用pdb调试python

    linux下调试python,对于轻量级的工程,直接print是最简单的方法,但是当变量变多,工程变大的时候,print就会力不从心,linux下也没有界面IDE,所以就用pd