python pdb调试基本命令整理
使用简介
启动调试
-
侵入式
在 py 文件内部设置:
import pdb; pdb.set_trace()程序会在运行到这一行时停下来,进入 pdb 交互。
-
非侵入式
在运行 py 脚本时:
python -m pdb main.py程序会在一启动时就进入 pdb 交互。
基本命令
| 简写(命令全称) | 功能 |
|---|---|
| h(elp) | 输出所有命令帮助 |
| h(elp) command | 输出指定命令的帮助 |
| q(uit) | 退出 |
查看相关命令
| 简写(命令全称) | 功能 |
|---|---|
| p(rint) expr | 打印表达式的值 |
| pp(rint) expr | pretty 打印表达式的值 |
| w(here) | 打印当前位置(包括stack trace) |
| l(ist) | 打印当前行的附近11行 |
| l(ist) fisrt, last | 从行号 fisrt 打印到行号 list |
| a(rgs) | 打印当前函数的参数 |
移动相关命令
| 简写(命令全称) | 功能 |
|---|---|
| <ENTER> | 重复上一条命令 |
| n(ext) | 执行当前语句(step over) |
| s(tep) | 执行并进入函数 |
| r(eturn) | 继续执行直到当前函数返回 |
| c(ontinue) | 继续执行直到下一个断点 |
| u§ | 移动到stack trace的上一层 |
| d(own) | 移动到stack trace的下一层 |
断点相关命令
| 简写(命令全称) | 功能 |
|---|---|
| b(reak) | 显示所有断点 |
| b(reak) lineno | 在 lineno 设置断点 |
| b(reak) func | 在 func 函数的第一行设置断点 |
其他
| 简写(命令全称) | 功能 |
|---|---|
| !stmt | 执行 python 语句 stmt (而非当做pdb命令) |