python的调试

在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

原文地址:https://www.cnblogs.com/djcsch2001/p/2106750.html