Ch3nyang's blog collections_bookmark

post

person

about

category

category

local_offer

tag

rss_feed

rss

Python 指北 | (1)
PDB入门

calendar_month 2024-08
archive 编程
tag python

There are 2 posts in series Python 指北.

Python 是一门非常简单的语言。然而,当你开始写一些复杂的程序时,总会遇到一些问题。Python 指北系列将会逐个介绍一些 Python 的高级用法,帮助你更好地理解 Python。

PDB 是 Python 的调试器,可以帮助我们在程序运行时查看变量的值、单步调试等。

PDB 有两种启动方式:

  1. 在代码中插入 breakpoint() 函数;
  2. 在命令行中运行 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

Share This Post