Python pdb 简要指南

本文简要介绍了Python调试工具pdb的常用启动方式,包括pdb.run方法、命令行参数方式以及插入代码中的导入pdb并调用set_trace()方法进行调试。详细阐述了在pdb模式下常用的命令操作,如退出debug、帮助查询命令、执行代码、设置断点、打印当前执行位置、查看源码等,旨在帮助开发者高效定位和解决代码bug。

Python pdb 简要指南

pdb常用的启动方式

a) 通过 pdb.run 方法:

>>> import pdb
>>> import mymodule
>>> pdb.run('mymodule.test()')

b) 命令行参数方式

python -m pdb myscript.py

c) 最常用的是将下面一行插入到欲Debug的代码特定位置:

import pdb; pdb.set_trace()

然后执行代码。

(Pdb)模式下的常用命令

q
退出debug

h 即help,打印所有可以命令

h w 
打印命令 w 的含意

n
执行当前行直到到达下一行或直到它返回

s
执行当前行,一有可能就停止(比如当前行有一个函数调用)。它和n(next)的区别是当前行中有函数调用时s(step)会停止当前行的执行而去调用那个函数,而n不会停止,直到计算完成这一行(到达下一行)。

b(reak) [[filename:]lineno | function[, condition]]
设置断点,可以是行号或函数。如 b 10b foob foo,n == 5,最后在函数foo()入口处设置一个断点,但仅当n的值是5时才有效。当b命令无参数时,打印所有断点。

tb(reak) [[filename:]lineno | function[, condition]]
临时断点,只hit一次。

disable [bpnumber [bpnumber ...]]
使指点行的断点(们)失效

enable [bpnumber [bpnumber ...]]
使指定行上的断点(们)有效

c
继续执行程序,直到遇到下一个断点

w
即where,打印当前执行点的位置

l [first, [,last]]
输出当前行附近的源码

p expression
执行一个表达式当打印其值。

a(rgs)
打印当前函数的参数及其值

<直接回车>
重复执行上次的命令

并遇到pdb不认识的命令时,会将它当成python表达式执行。如果你想执行的表达时,最前面加上 ! 字符,比如 !n == 5

多个debug命令可以写在一行上,中间用两个分号分隔,如 s;;s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值