告别 `print()`!用 VS Code 调试器高效定位 Bug

简介: 本文手把手教你用VS Code调试器替代低效`print`:5步定位“越打折越贵”Bug,零代码侵入、实时查变量、支持条件断点与表达式监视。免费、高效、安全——调试本该如此简单!

“我加了 8 个 print,结果忘了删第 3 个……现在生产日志全是 ‘DEBUG: foo=42’。”
—— 某位刚被 SRE 叫去喝茶的开发者

你是不是也这样调试代码?

print("subtotal:", subtotal)
print("discount:", discount)
print("total before return:", total)

print 调试简单、直接、可靠——但效率低、易遗漏、污染代码
尤其当你需要:

  • 查看循环中每一步的变量
  • 跟踪函数调用栈
  • 修改临时值测试逻辑

这时候,是时候升级你的武器库了:VS Code 内置调试器,免费、强大、零侵入!

今天,我们就用一个真实 Bug,手把手教你从 “print 新手” 进阶到 “调试高手”。


🐛 场景重现:一个“越打折越贵”的订单系统

假设你写了这样一个 Python 函数:

def calc_total(orders, discount):
    subtotal = 0
    for o in orders:
        subtotal += o.price * o.qty
    # ❌ 错误:用了 + 而不是 -
    total = int(subtotal * (1 + discount))  # 应该是 (1 - discount)!
    return total

预期:打 9 折(discount=0.1),总金额应为 1431
实际输出:1749 —— 居然涨价了?!

print 调试?可以,但麻烦。
用 VS Code 调试器?5 秒定位问题


🛠️ 第一步:安装 Python 扩展(只需一次)

  1. 打开 VS Code
  2. 点击左侧 Extensions(扩展) 图标(或按 Ctrl+Shift+X
  3. 搜索 “Python”,安装由 Microsoft 官方发布的插件

image.png

✅ 安装后,VS Code 自动支持断点、变量查看、单步执行等调试功能。

配置解释器
在这里插入图片描述


📍 第二步:设置断点(点击一下就行)

在你想“暂停检查”的代码行左侧 点击空白处,会出现一个红点 —— 这就是断点(Breakpoint)

我们在这两行设断点:

  • subtotal += o.price * o.qty
  • total = int(subtotal * (1 + discount))

image.png

💡 小技巧:按住 Ctrl(Windows/Linux)或 Cmd(Mac)可快速添加/删除断点。


▶️ 第三步:启动调试器

  1. 点击左侧 Run and Debug 图标(虫子图标 🐞)
  2. 点击 “Run and Debug” 按钮
  3. 首次使用会提示选择环境,选 “Python File”

image.png

程序会在第一个断点处自动暂停!


🔍 第四步:查看变量 & 单步执行

当程序暂停时,左侧会显示 Variables(变量)面板

  • orders: 当前订单列表
  • subtotal: 循环累加后的金额(1590)
  • discount: 0.1

继续点击 Step Over(F10),执行下一行:

total = int(subtotal * (1 + discount))

计算过程一目了然:

1590 * (1 + 0.1) = 1590 * 1.1 = 1749

🎯 Bug 根源暴露:应该是 (1 - discount),不是 (1 + discount)

image.png


条件断点

右击断点,选择Expression,填写表达式

image.png

image.png


查看表达式的值

vscode 提供了一个watch功能,可以方便查看一个表达式的值

image.png

image.png


✅ 第五步:修复并验证

修改代码:

# 修复:减去折扣
total = int(subtotal * (1 - discount))

重新运行,输出:

TOTAL: 1431

完美!


🧠 为什么调试器比 print 更强?

对比项 print 调试 VS Code 调试器
代码侵入 需要写/删代码 零修改
变量查看 只能看指定值 所有变量实时可见
控制流 无法暂停 可暂停、单步、跳入函数
条件调试 难实现 支持 条件断点
生产安全 容易漏删 完全无残留

就像从用手电筒找钥匙,升级到用热成像仪——效率不是一个量级。


🎯 总结:调试器不是“高级功能”,而是“基础技能”

print 调试适合 5 行脚本,但现代开发需要更高效的工具
VS Code 调试器:

  • 免费、内置、开箱即用
  • 支持 Python、Go、JavaScript、Rust 等几乎所有语言
  • 让你 看得清、控得住、改得快

下次遇到诡异 Bug,别再狂加 print 了——
点个断点,让代码自己说话。

Happy Debugging! 🐞✨


相关文章
|
JavaScript 前端开发 数据处理
vue2、vue3中使用$forceUpdate()
vue2、vue3中使用$forceUpdate()
3165 0
|
3月前
|
人工智能 运维 安全
2026年OpenClaw(Clawdbot)极速部署与OpenClaw Skills生态运维指南
2026年,开源AI智能体技术进入爆发期,OpenClaw(原Clawdbot、Moltbot)凭借“本地优先、全链路可执行、技能生态丰富”的核心特性,成为个人与轻量团队实现自动化办公的首选工具。它彻底打破了传统AI“只会对话不会执行”的局限,通过标准化的Skills(技能)体系,能够像人类一样调用工具、处理文件、对接系统,完成从内容总结到跨平台推送的全流程任务。
427 10
|
3月前
|
IDE API 数据库
FastAPI + SQLModel 实战:标准项目结构下,一个模型搞定数据库与 API
SQLModel 实现“一模型双用”:单个类同时作为数据库表与 Pydantic API 模型,天然支持字段校验、类型提示、OpenAPI 文档生成,彻底消除重复定义,提升开发效率与一致性。(239字)
429 4
|
3月前
|
JSON 安全 测试技术
别再只用 `net/http` 了!Go 高并发场景的“涡轮增压”方案:`fasthttp`
`fasthttp` 是由 Valyala 开发的高性能 HTTP 引擎,专为高吞吐、低延迟、低内存场景优化。相比 `net/http`,它快 6 倍+、零堆分配、支持百万级连接,适合 API 网关、实时服务等场景,但仅支持 HTTP/1.1。(239 字)
371 0
|
3月前
|
人工智能 开发框架 数据可视化
谷歌推出新一代AI开发框架Genkit: Go 入门指南:用 Go 轻松构建 AI 应用
Genkit 是 Google Firebase 推出的开源 AI 应用框架,支持 Go、JS、Python。Genkit Go 为纯 Go 实现,统一接入 Gemini/OpenAI/Vertex AI,内置可视化调试、类型安全结构化生成,专为生产环境设计,5 分钟即可启动首个 AI 应用。
662 3
|
3月前
|
Oracle Java 关系型数据库
JDK 21安装教程 Windows版详细步骤+环境变量验证(含java/javac/java -version检测)
JDK(Java SE Development Kit)是Oracle官方提供的Java标准版开发工具包,包含编译器(javac)、运行环境(JRE)及核心类库等,用于Java程序的开发、编译、调试与运行。本文详解JDK 21在Windows下的下载、安装与验证步骤,助力新手快速搭建开发环境。(239字)
2562 114
|
2月前
|
安全 Go 开发者
Go 1.26 小争议:`go mod init` 默认版本“降级“了?
Go 1.26 工具链默认 `go mod init` 生成 `go 1.25` 模块,导致新语法(如 `new(42)`)编译报错。此举虽为兼容性考虑,却违背“最小惊讶原则”,引发开发者困惑。可手动指定 `-go=1.26` 解决。(239字)
627 4
|
1月前
|
缓存 运维 安全
Go并发生产实践:从“能跑就行“到“稳如老狗“的进阶之路
本文以真实运维事故切入,系统梳理Go并发开发五大避坑法则、原语选型指南及实用工具封装,强调“并发不是魔法,而是责任”。聚焦可测试性、资源安全与优雅终止,倡导用`errgroup`替代裸`go`、用`context`实现紧急制动、用封装隐藏复杂性,助你写出稳健、可维护的生产级并发代码。(239字)
136 3
|
3月前
|
编译器 Linux 数据安全/隐私保护
Kylin V10 安装 compat-gcc-44-4.4.7-8.el7.x86_64.rpm 详细步骤
本指南教你如何在银河麒麟V10(x86_64架构)系统上安装compat-gcc-44编译器。含系统确认、RPM包定位、推荐使用dnf/yum自动解决依赖安装,及安装后验证步骤,操作简洁可靠。(239字)
|
3月前
|
安全 Java API
Spring Boot 4 升级实战:从3.x到4.0的分步升级保姆级指南
Spring Boot 4.0于2025年11月发布,基于Spring Framework 7.0,实现模块化(47个轻量自动配置)、JSpecify空安全校验、原生API版本控制等重大升级。镜像减19%、启动快33%,迁移平滑,3.5.x支持至2026年11月。(239字)
4308 1