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命令) |