Python小技巧:使用Pdb调试程序
使用 Pdb 调试 Python 程序 启动方法( 2 种) 侵入式方法(需要在被调试的代码中添加一行代码然后再正常运行代码) import pdb;pdb.set_trace() 非侵入式方法(类似于 gdb ,不用额外修改源代码,在命令行下直接运行就能调试) python3 -m pdb filename.py Pdb 命令 查看源代码 命令 l :查看当前位置前后11行源代码(多次会翻页),当前位置在代码中会用–>这个符号标出来; 命令 ll :查看当前函数或框架的所有源代码; 添加断点 命令 b line_number :例如 b 18 在当前文件的第 $$18$$ 行打断点; 命令 b filename:line_number :在 filename 文件的第 line_number 行打断点; 命令 b functionname :在函数 functionname 处打断点; 命令 b :列出所有中断,包括每个断点、命中该断点的次数、当前的忽略次数以及关联的条件; 清除断点 命令 cl :清除所有断点; 命令 cl bpnumber [bpnumber ...] :清除指定行的断点,如有多个,则用空格隔开; 命令 cl filename:lineno :清除指定文件的某一行的断点; 打印变量值 命令 p expression :expression 为 Python 表达式; 逐行调试命令 命令 s :执行下一行(能够进入函数体); 命令 n :执行下一行(不会进入函数体); 命令 r :执行下一行(在函数中时会直接执行到函数返回处); 非逐行调试命令 命令 c :持续执行下去,直到遇到一个断点; 命令 unt lineno :持续执行直到运行到指定行(或遇到断点); 命令 j lineno :直接跳转到指定行(被跳过的代码不执行); 查看函数参数 命令 a :在函数中时打印函数的参数和参数的值; 打印变量类型 命令 whatis expression :打印表达式的类型,常用来打印变量值; 启动交互式解释器 命令 interact :启动一个 python 的交互式解释器,使用当前代码的全局命名空间(使用 ctrl+d 返回 pdb ); 打印堆栈信息 命令 w :打印堆栈信息,最新的帧在最底部。箭头表示当前帧; 退出pdb 命令 q :退出 pdb 程序; 参考资料 10分钟教程掌握Python调试器pdb ; Python官方文档 ...