ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

pdb使用

2022-06-07 19:34:48  阅读:282  来源: 互联网

标签:函数 说明 命令 lineno 使用 断点 pdb


pdb使用

来源 https://zhuanlan.zhihu.com/p/37294138

 

如果你还主要靠print来调试代码,那值得花10分钟试试pdb这个Python自带的Debug工具。

pdb有2种用法:

  • 非侵入式方法(不用额外修改源代码,在命令行下直接运行就能调试)
python3 -m pdb filename.py
  • 侵入式方法(需要在被调试的代码中添加一行代码然后再正常运行代码)
import pdb;pdb.set_trace()

当你在命令行看到下面这个提示符时,说明已经正确打开了pdb

(Pdb) 

然后就可以开始输入pdb命令了,下面是pdb的常用命令

1、查看源代码

命令:

l

说明:

查看当前位置前后11行源代码(多次会翻页)
当前位置在代码中会用-->这个符号标出来

 

命令:

ll

说明:

查看当前函数或框架的所有源代码

2、添加断点

命令:

b
b lineno
b filename:lineno 
b functionname

参数:

filename文件名,断点添加到哪个文件,如test.py
lineno断点添加到哪一行
function:函数名,在该函数执行的第一行设置断点

说明:

1.不带参数表示查看断点设置
2.带参则在指定位置设置一个断点

3、添加临时断点

命令:

tbreak
tbreak lineno
tbreak filename:lineno
tbreak functionname

参数:

同b

说明:

执行一次后时自动删除(这就是它被称为临时断点的原因)

4、清除断点

命令:

cl
cl filename:lineno
cl bpnumber [bpnumber ...]

参数:

bpnumber 断点序号(多个以空格分隔)

说明:

1.不带参数用于清除所有断点,会提示确认(包括临时断点)
2.带参数则清除指定文件行或当前文件指定序号的断点

5、打印变量值

命令:

p expression

参数:

expression Python表达式

6、逐行调试命令

包括 s ,n , r 这3个相似的命令,区别在如何对待函数上

命令1:

s

说明:

执行下一行(能够进入函数体)

 

命令2:

n 

说明:

执行下一行(不会进入函数体)

 

命令3:

r 

说明:

执行下一行(在函数中时会直接执行到函数返回处)

7、非逐行调试命令

命令1:

c 

说明:

持续执行下去,直到遇到一个断点

 

命令2

unt lineno

说明:

持续执行直到运行到指定行(或遇到断点)

 

命令3

j lineno

说明:

直接跳转到指定行(注意,被跳过的代码不执行)

8、查看函数参数

命令:

a

说明:

在函数中时打印函数的参数和参数的值

 

9、打印变量类型

命令:

whatis expression

说明:

打印表达式的类型,常用来打印变量值

10、启动交互式解释器

interact

说明:

启动一个python的交互式解释器,使用当前代码的全局命名空间(使用ctrl+d返回pdb)

11、打印堆栈信息

w

说明:

打印堆栈信息,最新的帧在最底部。箭头表示当前帧。

12、退出pdb

q

 

=========== End

 

 

 

标签:函数,说明,命令,lineno,使用,断点,pdb
来源: https://www.cnblogs.com/lsgxeva/p/16353030.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有