Python pdb
来源:互联网 发布:淘宝上传营业执照步骤 编辑:程序博客网 时间:2024/06/05 08:27
python中有个pdb模块,使python代码也可以像gdb那样进行调试,一般情况下pdb模块可以在代码内直接使用,也可以通过命令行参数的形式添加该模块进行调试(python -m pdb file.py)。在代码中直接使用pdb模块调试时,import pdb模块后,然后在需要调试的代码出添加pdb.set_trace()命令即可,运行程序后,在运行到次代码处会自动停止,进入调试模式。
一般常用的调试命令有如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
q 退出debug
h 打印可用的调试命令
b 设置断点,b 5 在第五行设置断点
h
command
打印
command
的命令含义
disable codenum 使某一行断点失效
enable
codenum 使某一行的断点有效
condition codenum xxx 针对断点设置条件
c 继续执行程序,直到下一个断点
n 执行下一行代码,如果当前语句有函数调用,则不会进入函数体中
s 执行下一行代码,但是s会进入函数
w 打印当前执行点的位置
j codenum 让程序跳转到指定的行
l 列出附近的源码
p 打印一个参数的值
a 打印当前函数及参数的值
回车 重复执行上一行
测试代码如下sum.py:
1
2
3
4
5
6
7
8
9
10
#/usr/bin/python
def add_t( ):
i=1
sum
=0
for
i
in
range(1,5):
sum
=
sum
+i
print
sum
if
__name__ ==
'__main__'
:
add_t()
调试过程如下:python -m pdb sum.py
n调试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
>
/
opt
/
sum
.py(
3
)<module>()
2
-
>
def
add_t( ):
3
(Pdb) n
4
>
/
opt
/
sum
.py(
9
)<module>()
5
-
>
if
__name__
=
=
'__main__'
:
6
(Pdb) n
7
>
/
opt
/
sum
.py(
10
)<module>()
8
-
> add_t()
9
(Pdb) n
10
1
11
3
12
6
13
10
14
-
-
Return
-
-
15
>
/
opt
/
sum
.py(
10
)<module>()
-
>
None
16
-
> add_t()
17
(Pdb) q
n表示执行下一行代码,但是不陷入函数内部,可以看第3、6、9行,在执行add_t函数时并未陷入函数内部。
s调试1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
1
>
/
opt
/
sum
.py(
3
)<module>()
2
-
>
def
add_t( ):
3
(Pdb) s
4
>
/
opt
/
sum
.py(
9
)<module>()
5
-
>
if
__name__
=
=
'__main__'
:
6
(Pdb) s
7
>
/
opt
/
sum
.py(
10
)<module>()
8
-
> add_t()
9
(Pdb) s
10
-
-
Call
-
-
11
>
/
opt
/
sum
.py(
3
)add_t()
12
-
>
def
add_t( ):
13
(Pdb) s
14
>
/
opt
/
sum
.py(
4
)add_t()
15
-
> i
=
1
16
(Pdb) s
17
>
/
opt
/
sum
.py(
5
)add_t()
18
-
>
sum
=
0
19
(Pdb) s
20
>
/
opt
/
sum
.py(
6
)add_t()
21
-
>
for
i
in
range
(
1
,
5
):
22
(Pdb) s
23
>
/
opt
/
sum
.py(
7
)add_t()
24
-
>
sum
=
sum
+
i
25
(Pdb) s
26
>
/
opt
/
sum
.py(
8
)add_t()
27
-
>
print
sum
28
(Pdb) p i
29
1
30
(Pdb) p
sum
31
1
32
(Pdb) s
33
1
34
>
/
opt
/
sum
.py(
6
)add_t()
35
-
>
for
i
in
range
(
1
,
5
):
36
(Pdb) s
37
>
/
opt
/
sum
.py(
7
)add_t()
38
-
>
sum
=
sum
+
i
39
(Pdb) s
40
>
/
opt
/
sum
.py(
8
)add_t()
41
-
>
print
sum
42
(Pdb) p i
43
2
44
(Pdb) p
sum
45
3
46
(Pdb)
s调试和n调试一样,只不过s在遇到函数时会进入函数进行调试,9、12、13表示进入add_t函数内部进行调试,后面使用p命令打印相关函数内参数的值,后面输入r即可退出函数内部的调试。
0 0
- pdb python
- pdb Python
- Python--pdb
- Python pdb
- python pdb 基础调试
- python pdb 调试器
- python pdb使用
- pdb命令使用说明 python
- Python pdb基础调试
- pdb 调试python
- python debug 工具pdb
- Python 调试 PDB
- 调试python程序---pdb
- Python调试利器PDB
- pdb (python debug)
- Python pdb 简要指南
- python pdb调试命令
- pdb调试python代码
- 【Python网络爬虫】百度贴吧/豆瓣小组
- android各个版本对应的api
- 为Android虚拟机创建SDCard
- 路由器的桥接1---2台简单桥接
- iOS开发之玩转字符串
- Python pdb
- phpnow中导入mysql文件大小32m的解决办法
- 遇到不支持的 Oracle 数据类型 USERDEFINED。
- Prim-NYOJ-38-布线问题
- 性能优化学习资源
- AVPlayer的基本使用
- IOMeter的初步使用
- Java基础——IO流
- Android 权限中英文对照表