Python 是一门非常简单的语言。然而,当你开始写一些复杂的程序时,总会遇到一些问题。Python 指北系列将会逐个介绍一些 Python 的高级用法,帮助你更好地理解 Python。
PDB 是 Python 的调试器,可以帮助我们在程序运行时查看变量的值、单步调试等。
PDB 有两种启动方式:
- 在代码中插入
breakpoint()
函数; - 在命令行中运行
python -m pdb [文件名.py]
。
作为搞二进制逆向的,GDB 我已经很熟了,而 PDB 也是一个模子刻出来的,所以用法也是差不多的。所以,这里仅仅简单罗列一下常用的命令:
-
b [行号 | 函数名] [断点条件]
:在指定行设置断点。如果不指定参数,则列出所有断点;如果第二个参数存在,则该条件为真时断点生效; -
c
:继续执行到下一个断点; -
n
:单步执行; -
s
:单步执行,如果遇到函数则进入函数内部; -
unt [行号]
:执行到指定行; -
r
:执行到函数返回; -
l
:查看当前行及周围 11 行的代码; -
p [变量名 | 表达式]
:打印变量的值; -
pp [变量名 | 表达式]
:打印变量的值,格式化输出; -
q
:退出调试器; -
[命令]
:执行 Python 命令。
可以看出,最大的区别就是,得益于 Python 是解释型语言,所以 PDB 可以直接执行 Python 命令。而在 GDB 中,我们需要使用 call
或者 set
命令,灵活性就差了很多。
Comments