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