Python 调试器 pdb 基础使用指南
本文介绍 Python 内置调试器 pdb 的两种核心用法:通过命令行启动脚本进行交互式调试,以及在代码中嵌入 pdb.set_trace() 实现断点暂停。详细列举了单步执行、断点管理、变量查看及条件断点等常用命令,帮助开发者快速定位并解决代码逻辑错误。
命令行交互式调试
使用 python -m pdb 模块可以直接启动脚本进入单步执行模式。这种方式适合在运行前预设调试策略,或者在不修改源代码的情况下进行动态调试。
启动与基础操作
启动调试后,输入 h 可获取帮助信息,w 用于打印当前执行堆栈。通过 d 和 u 命令可以分别跳转到当前堆栈的深层或上层,从而在不同调用层级间切换。
断点管理
调试的核心在于断点控制。使用 b 命令可以列出当前所有断点及其命中次数。添加断点的语法灵活:
b line_no:在当前脚本指定行号添加断点。b filename:line_no:在指定文件的指定行添加断点。b function:在函数的第一条可执行语句处添加断点。
若需临时断点,可使用 tbreak,其语法与 b 相同,但在第一次命中后会自动删除。清除断点可使用 cl 命令,支持清除所有断点、指定断点号或指定行号/文件行的断点。此外,disable 和 enable 命令可用于停用或激活特定断点,而无需删除它们。
执行控制与代码查看
进入调试环境后,可通过以下命令控制执行流程:
s:单步执行,若当前语句为函数调用,则进入函数内部执行第一句。n:执行当前语句,若为函数调用则直接执行完毕,不进入函数内部。r:运行当前函数直到结束,返回到调用者层级。c:继续执行直到遇到下一个断点。unt:执行到下一行代码或跳出当前循环。j lineno:设置下一条执行的语句行号(仅限堆栈最底层)。
使用 l 命令可查看代码上下文:l 显示当前语句周围 11 行代码;l first 显示指定行周围的代码;l first second 则显示指定范围内的代码。
变量查看与表达式求值
调试过程中,a 命令用于列出当前执行函数的参数。使用 p expression 可输出表达式的值,而 pp 命令则以更美观的格式输出复杂对象。直接输入 Enter 键可重复执行上一条命令。
其他功能
输入 run 可重新启动调试会话,q 用于退出调试环境。若输入 pdb 不识别的命令,它将被当作 Python 语句执行,这提供了极大的灵活性。此外,可通过 condition bpnumber condition 为断点设置条件,使其仅在特定条件下触发。
#test1.py s = '0' n = int(s) print(10/n)
python -m pdb test1.py






代码内嵌断点调试
对于频繁调试的场景,命令行方式可能显得繁琐。第二种方法是在代码中直接嵌入调试语句,程序运行至该处时自动暂停并进入 pdb 环境。
实现步骤
- 在需要调试的 Python 文件中导入 pdb 模块:
import pdb。 - 在代码中需要暂停的位置添加
pdb.set_trace()。 - 运行脚本,程序将在
set_trace()处暂停,并进入交互式调试环境。
在暂停状态下,开发者可以使用 p 变量名 查看当前变量状态,确认无误后输入 c 继续运行程序。
# test1.py import pdb s = '0' n = int(s) pdb.set_trace() #运行到这里会自动暂停 print(10/n)

以上就是 Python 调试器 pdb 的简单使用指南,涵盖了命令行交互与代码内嵌两种主要调试方式。更多关于 Python 调试技巧的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













