python调试工具 -- pdb
发布时间
阅读量:
阅读量
参考资料
简介
Python自带了pdb模块。它类似于C++中的gdb工具的存在,并且便于开发者在命令行环境中对代码进行调试。
进入调试
- 修改代码
A commonly used method for breaking into a debugger while the program is running is inserting at the desired debugging location.
为了在需要调试的位置插入以下代码,在运行时,在插入位置会停止进入调试模式
import pdb
pdb.set_trace()
- 脚本执行调试
pdb.py can also be invoked as a script to debug other scripts
# myscript.py为要调试的程序
python3 -m pdb myscript.py
推荐使用方法2,重要的是不会添加额外的代码污染代码,更加灵活。
常用命令
| 命令 | 功能 |
|---|---|
| 断点有关的命令 | |
| b(break) | 查看已设的所有断点 |
| b no | 设置断点,no是断点所在的行号 |
| b filename:no | 将断点添加到某个文件中 |
| b funcname | 为函数funcname的第一行设置断点 |
| tbreak(break) | 同b,临时断点,执行一次自动清除 |
| tbreak no | 略 |
| tbeak filename:no | 略 |
| tbreak funcname | 略 |
| disable bno | 禁用指定序号断点,但未删除 |
| enable bno | 启用指定序号断点 |
| cl | 清除所有断点(包括临时断点) |
| cl bno1[bno2 ……] | 清除指定序号的断点,多个用空格分隔 |
| cl filename:no | 清除某文件所在行号的断点 |
| 调试相关的命令 | |
| s(step) | 执行下一句,遇到函数会进入到函数内部执行 |
| n(next) | 执行下一句,不会进入函数 |
| r(return) | 执行当前所在函数的返回处 |
| c(continue) | 执行到下一个断点处 |
| unt(until) | 退出当前循环或堆栈,遇到断点会停止 |
| unt no | 执行到指定行号处停止 |
| 查看代码或变量值 | |
| l(list) | 列出当前执行行周围的11行代码 |
| l no | 列出指定行号周围的11行代码 |
| l no1 no2 | 列出no1 no2间的行号 |
| ll | 列出所有代码 |
| p exp | 打印某变量或表达式的值 |
| pp exp | 好看一点打印某变量或表达式的值 |
| a | 查看所在函数的参数与参数值 |
| what is var | 查看变量的类型 |
| 其它 | |
| restart | 重新运行 |
| run | 类似restart |
| q(quit) | 退出调试 |
| interact | 启动一个python的交互式解释器,使用当前代码的全局命名空间 ctrl + d退出 |
全部评论 (0)
还没有任何评论哟~
