pdb调试python
程序员文章站
2022-07-15 09:48:19
...
1 python输出异常信息
window下python肯定很容易调试的,但是linux下就很难了,为了调试信息,可以输出抛出的异常看看具体什么错:
try:
...
...
except Exception as ex:
print( "抛出异常 %s" % (ex) )
2 pdb调试python
python3 -m pdb demo.py
按照如上方式就可以使用pdb调试Python,在控制台断点调试,来解决不容易发现的错误。其实和gdb很类似。
运行上面命令后,Pdb会自动停在第一行,等待调试,这时可以敲如下命令
命令 | 命令 | 含义 |
---|---|---|
list |
l |
显示当前源代码的部分上下文 l 行号,显示指定行上下文
|
break |
b |
b 行号,添加指定行号断点, 直接输入b显示所有断点 |
break |
b |
b <filename:行号>,设置指定文件行上的断点 |
break |
b |
b <行号> <condition>,条件断点如b 11 i>10 |
clear |
cl |
删除断点 cl 断点编号 |
step |
s |
单行运行,进入函数行, step in |
continue |
c |
执行到下一个断点 |
next |
n |
单行运行,跳过函数行 ** |
until |
u |
执行到指定行,u 行号 |
print |
p |
打印内部变量值如,p 变量名 ,p *数组名@数组长度 如 p *a10
|
pp |
pp |
好看一点的打印 |
run | r |
开始 或 继续 运行程序 |
up | u |
返回上个调用点 |
down | d |
返回下个调用点 |
where | w |
打印当前执行堆栈 |
args |
a |
显示当前所有变量 |
hep | h |
帮助 |
和GDB一样,Enter会直接重新运行上一条命令
输入PDB不认识的命令,PDB会把他当做Python语句在当前环境下执行
关于GDB调试可参考linux断点调试的一些问题