在python脚本中可以用pdb进行调试,具体方法如下:
1.使用run语句调试,格式为:
run(statement[,globals[,locals]])
参数含义如下
statement:要调试的语句块,以字符串的形式
globals:可选参数,设置statement运行的全局环境变量
locals:可选参数,设置statement运行的局部环境变量
以下实例使用run函数调试语句块
>>> pdb.run('''
for i in range(0,3):
i=i**2
print(i)
''')
> <string>(2)<module>()
(Pdb) n #(Pdb)为调试命令提示符,n表示执行下一行
> <string>(3)<module>()
(Pdb) n
> <string>(4)<module>()
(Pdb) n
0
> <string>(2)<module>()
(Pdb) continue #继续运行程序
1
4
运行函数
在python中可以使用pdb模块的runcall函数来调试函数,其原型如下:
runcall(function[,argument,...])
参数含义如下:
function: 函数名
argument: 函数的参数
以下实例使用runcall函数来调试函数
>>> import pdb
>>> def sum(*args):
r=0
for arg in args:
r=r+arg
return r
>>> pdb.runcall(sum,1,2,3,4)
> <pyshell#13>(2)sum()
(Pdb) n
> <pyshell#13>(3)sum()
(Pdb) print r
0
(Pdb) continue
10
>>> pdb.runcall(sum,1,2,3,4,5,6)
> <pyshell#13>(2)sum()
(Pdb) continue
21
设置硬断点
在python中可以使用pdb模块的set_trace函数在脚本中设置硬断点。set_trace函数一般在".py"脚本中使用。其函数原型如下:
set_trace()
以下实例使用run函数调试语句块
> e:\python32\debug.py(3)<module>()
-> for i in range(0,5):
(Pdb) list #使用list列出脚本内容
1 import pdb
2 pdb.set_trace()
3 -> for i in range(0,5):
4 i=i*5
5 print(i)
[EOF]
(Pdb) continue #使用continue继续执行
0
5
10
15
20