,,python 调试器pdb的简单使用

,,python 调试器pdb的简单使用

本文主要介绍python调试器pdb的简单使用,帮助您更好地理解和学习使用python。感兴趣的朋友可以了解一下。

有两种方法可以使用PDB:

1. 单步执行代码,通过命令 python -m pdb xxx.py 启动脚本,进入单步执行模式

Pdb命令行:

1)进入命令行调试模式,python-mpdbxxx.py。

2) H:(救命2)h:(救命

3) W: (where)打印当前的执行堆栈

4) D: (down)执行跳转到当前栈的更深层次(我个人觉得没什么用)

5) U: (UP)跳到当前堆栈的前一层。

6) B: (break)添加一个断点

列出所有当前断点,并计算断点被执行的次数。

Bline_no:当前脚本的行添加了一个断点。

Bfilename:line_no:在脚本文件名的line_no行添加一个断点

b:在函数function的第一条可执行语句处添加断点

7) tbreak:(临时中断)临时断点

第一次执行到这个断点后,这个断点会被自动删除,用法和b一样。

8) Cl:(清除8)cl:(清除断点。

Cl清除所有断点。

Clbpnumber1bpnumber2.用断点bpnumber1、bpnumber2清除断点.

Cllineno清除当前脚本的lineno行的断点。

Clfilename:line_no清除脚本文件名的line_no行的断点。

9)disable:禁用断点,参数为bpnumber。与cl不同的是,断点仍然存在,但没有启用。

10)enable:激活断点,参数为bpnumber。

1) s:(步骤)执行下一个命令。

如果这句话是函数调用,s会执行到函数的第一句话。

12) n: (next)执行下一条语句。

如果这句话是函数调用,执行函数,然后执行下一条当前执行的语句。

13) R: (return)将当前运行的函数执行到底。

14) C:(继续14)c:(继续执行,直到到达下一个断点。

15) L: (list)列出源代码。

列出当前执行的语句周围的11个代码。

Lfirst在第一行列出了11个代码。

Lfirstsecond列出了第一秒范围内的代码。如果secondfirst,second将被解析成行数。

16) A: (args)列出当前正在执行的函数

17) p表达式:(打印)输出表达式的值。

18)ppexpression:更好看的pexpression。

19)运行:重启调试,相当于重启。

20)问:(退出)退出调试

1) jlineno: (jump)设置下面一段执行的语句函数。

只能跳到栈底,重新向后执行,直接向前执行到行号。

22) UNT:(直到)执行到下一行(跳出循环),或者当前堆栈结束。

23)conditionbpnumberconditon,为断点设置条件。当参数条件返回True时,bpnumber断点有效;否则,bpnumber断点无效。

注意:

1:直接输入,执行前面的命令;

2:输入一个PDB不知道的命令,PDB会在当前环境下作为Python语句执行;

示例:

#test1.py

s='0 '

n=int(s)

打印(10张/张)

打开命令行并运行test1.py

python -m pdb test1.py

Pdm定位下一步要执行的代码-s='0 ',并输入命令L,即上面的第15个命令L(列表),以查看以下代码:

输入命令n来单步执行代码。

您也可以输入p变量名来查看变量。

但是,该变量的代码必须运行后才能查看;否则,找不到该变量,如下所示

在开始运行test.py时,第一行代码s='0 '实际上还没有执行。看变量s会提示找不到变量。

输入命令q结束调试并退出程序。

2. pdb单步执行太麻烦了,所以第二种方法是import pdb 之后,直接在代码里需要调试的地方放一个pdb.set_trace(),就可以设置一个断点, 程序会在pdb.set_trace()暂停并进入pdb调试环境,可以用pdb 变量名查看变量,或者c继续运行

导入pdb

将上面的例子修改如下,导入pdb,将pdb.set_trace()添加到可能出错的代码前面。

# test1.py

导入pdb

s='0 '

n=int(s)

Pdb.set_trace() #在这里运行时会自动暂停。

打印(10张/张)

运行后,从程序到电源故障的下一行代码将被挂起。

以上是python调试器pdb的简单使用细节。更多关于python调试器pdb的信息,请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: