0

0

Python调试技巧教程_pdb断点调试实战

冷炫風刃

冷炫風刃

发布时间:2026-01-12 18:58:54

|

937人浏览过

|

来源于php中文网

原创

python调试最直接有效的方式是使用内置pdb模块,支持断点设置(breakpoint()或pdb.set_trace())、命令行启动(python -m pdb)及异常后自动调试(post_mortem)。

python调试技巧教程_pdb断点调试实战

Python调试最直接有效的方式就是用内置的 pdb 模块做断点调试。它不需要额外安装,命令简洁,适合快速定位变量状态、执行流程和逻辑错误。

在代码中插入断点

最常用的方法是在想暂停的位置加一行:import pdb; pdb.set_trace()(Python 3.7+ 可直接用 breakpoint())。

  • 运行脚本时,执行到这行会立即进入交互式调试界面,显示当前行和上下文
  • breakpoint() 是推荐写法,它会自动检查环境变量 PYTHONBREAKPOINT,方便统一关闭或替换调试器
  • 调试完记得删掉或注释掉断点语句,避免上线后意外中断

常用pdb命令速查

进入调试模式后,输入命令控制执行。几个高频指令:

Hotpot AI Background Remover
Hotpot AI Background Remover

Hotpot.ai推出的图片背景移除工具

下载
  • n(next):执行下一行,不进入函数内部
  • s(step):进入当前行调用的函数
  • c(continue):继续运行直到下一个断点或结束
  • p 变量名:打印变量值(支持表达式,如 p len(my_list)
  • l(list):列出当前附近源码,l 10,20 显示第10–20行
  • q(quit):退出调试,终止程序

命令行启动pdb调试

不想改源码?可以用命令行方式启动:

立即学习Python免费学习笔记(深入)”;

  • python -m pdb script.py:从头开始单步执行整个脚本
  • python -m pdb -c continue script.py:跳过初始化,只在遇到 set_trace() 或异常时暂停
  • 配合 -c 参数还能预设命令,比如 -c "b 15" -c c 表示先在第15行打断点再继续

结合异常自动进入pdb

程序崩溃时想立刻看现场?可以设置环境变量或使用装饰器:

  • 运行前设置:export PYTHONBREAKPOINT=pdb.post_mortem(Linux/macOS)或 set PYTHONBREAKPOINT=pdb.post_mortem(Windows),然后用 python -m pdb script.py 启动
  • 更简单的是加一句:import sys; sys.excepthook = lambda *args: pdb.post_mortem(args[2]),让任何未捕获异常都自动进入事后调试

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

261

2025.10.24

lambda表达式
lambda表达式

Lambda表达式是一种匿名函数的简洁表示方式,它可以在需要函数作为参数的地方使用,并提供了一种更简洁、更灵活的编码方式,其语法为“lambda 参数列表: 表达式”,参数列表是函数的参数,可以包含一个或多个参数,用逗号分隔,表达式是函数的执行体,用于定义函数的具体操作。本专题为大家提供lambda表达式相关的文章、下载、课程内容,供大家免费下载体验。

214

2023.09.15

python lambda函数
python lambda函数

本专题整合了python lambda函数用法详解,阅读专题下面的文章了解更多详细内容。

192

2025.11.08

Python lambda详解
Python lambda详解

本专题整合了Python lambda函数相关教程,阅读下面的文章了解更多详细内容。

60

2026.01.05

lambda表达式
lambda表达式

Lambda表达式是一种匿名函数的简洁表示方式,它可以在需要函数作为参数的地方使用,并提供了一种更简洁、更灵活的编码方式,其语法为“lambda 参数列表: 表达式”,参数列表是函数的参数,可以包含一个或多个参数,用逗号分隔,表达式是函数的执行体,用于定义函数的具体操作。本专题为大家提供lambda表达式相关的文章、下载、课程内容,供大家免费下载体验。

214

2023.09.15

python lambda函数
python lambda函数

本专题整合了python lambda函数用法详解,阅读专题下面的文章了解更多详细内容。

192

2025.11.08

Python lambda详解
Python lambda详解

本专题整合了Python lambda函数相关教程,阅读下面的文章了解更多详细内容。

60

2026.01.05

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1336

2023.07.26

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

24

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10万人学习

Git 教程
Git 教程

共21课时 | 3.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号