pdb debug 工具
类似调试C语言的Debug工具 gdb。python也有其内置的工具–pdb。
pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。pdb 提供了一些常用的调试命令,详情见表 1。
官方文档: https://docs.python.org/2/library/pdb.html
几个函数需要注意:
run(statement[, globals[, locals]])
runeval(expression[, globals[, locals]])
runcall(function[, argument, …])
set_trace()
runcall(function, argument,…)
非常好用可以避免从头传入参数,在已知参数的情况下可以之间调用想要debug的函数进行调用。
pdb.runcall(function[, argument, …])¶
Call the function (a function or method object, not a string) with the given arguments. When runcall() returns, it returns whatever the function call returned. The debugger prompt appears as soon as the function is entered.
命令 | 解释 |
---|---|
break 或 b | 设置断点 设置断点 |
continue 或 c | 继续执行程序 |
list 或 l | 查看当前行的代码段 |
step 或 s | 进入函数 |
return 或 r | 执行代码直到从当前函数返回 |
exit 或 q | 中止并退出 |
next 或 n | 执行下一行 |
pp | 打印变量的值 |
help | 帮助 |
注意首先需要 import pdb.
设置断点
调试可以通过设置断点的方式
清单 1. 测试代码示例
import pdb
a = "aaa"
pdb.set_trace()
b = "bbb"
c = "ccc"
final = a + b + c
print final
开始调试:直接运行脚本,会停留在 pdb.set_trace() 处,选择 n+enter 可以执行当前的 statement。在第一次按下了 n+enter 之后可以直接按 enter 表示重复执行上一条 debug 命令。
其他具体遇到问题再做记录。