断点不中断的根源是调试器未正确连接或断点未注册:先确认红点为实心●,否则检查launch.json配置、文件保存状态、解释器路径、项目结构及source map映射等。

断点不中断,不是代码有问题,而是调试器压根没连上、没加载、或根本没走到那——先看红点是不是实心●,不是就别往下调逻辑了。
断点是空心圆(○)或灰色,提示“Unverified breakpoint”
这说明 debugpy / JVM / debug adapter 根本没注册断点,调试链路在启动前就断了。常见原因:
-
launch.json里"type"写错:Python 必须是小写"python",不是"Python"、"pwa-python"或漏掉 - 项目根目录下没有有效的
.vscode/launch.json,或者被嵌套子目录里的同名文件覆盖 - 文件没保存:VSCode 不会给未保存的
.py或.java文件绑定断点,哪怕你点了红点 - 右下角状态栏没显示完整解释器路径(如
/myproj/.venv/bin/python),只显示模糊的 “Python 3.11.9” —— 那说明解释器没真正选中 - Java 项目缺
pom.xml或.classpath,VSCode Java 扩展无法识别为 Java 工作区,断点静默失效
程序跑完,断点完全没触发
调试器起来了,但没停,说明执行路径和你预期不一致。重点查三件事:
-
"program"和"module"别混用:"program": "${file}"只适用于直接运行单文件;若用python -m mypkg.cli启动,必须改用"module": "mypkg.cli" -
if __name__ == "__main__":块里的断点,只有该文件被直接执行时才生效;如果它是被 import 进来的,这个块不会运行 - Web 框架(Flask/Django/Spring Boot)默认不进子进程或路由分发逻辑:Python 要加
"justMyCode": false和"subProcess": true;Java 用 Maven 启动时,必须加-agentlib:jdwp=...参数,否则 JVM 不暴露调试端口 - 路径含中文或空格(尤其 Windows):debugpy 和 JDWP 都会静默失败,把项目移到
C:\dev\myproj或/tmp/myproj重试
TypeScript/前端项目断点变灰,提示“unbound breakpoint”
这不是 VSCode 的问题,是 source map 没对上。打包后的 bundle.js 和你点的 src/App.tsx 中间缺张“地图”。
- 确认
tsconfig.json里有"sourceMap": true,且"outDir"和launch.json中的"outFiles"一致(例如["${workspaceFolder}/dist/**/*.js"]) - Vue CLI 项目:必须在
vue.config.js中写configureWebpack: { devtool: 'source-map' };chainWebpack里设devtool无效 - Next.js 自定义
next.config.js时,若覆盖 webpack 配置,得手动加devtool: 'source-map' - 改完配置后必须:Ctrl+S 保存 → 触发重新构建(看
dist/*.js.map时间戳是否更新)→ 停止当前调试会话 → 再点 F5 启动新会话
变量为空、调用栈只有 、断点跳过自己写的模块
这往往不是断点失效,而是调试器没拿到源码上下文。根源常在缓存、编码或路径污染:
- 删掉所有
__pycache__/和*.pyc:旧字节码会让 debugpy 按过期 AST 绑定断点 - 文件头缺编码声明且含中文注释:必须在第一行写
# -*- coding: utf-8 -*-,否则 debugpy 解析失败 - 验证解释器一致性:在 Debug Console 执行
import sys; print(sys.executable),和终端里which python输出必须一字不差 -
"justMyCode": true是默认行为,但它会跳过所有非工作区代码——包括你自己的src/utils.py(只要它没被显式作为入口加载),这时要临时关掉它
最麻烦的其实是多环境叠加:poetry + conda + virtualenv 嵌套、IDE 终端和调试器用不同 shell、launch.json 里 cwd 和 program 路径不一致……这些地方不报错,只静默跳过。建议每次改完配置,都用 breakpoint()(Python)或 debugger;(JS)插个硬断点,先确认调试通道通不通,再排查具体哪一行没绑上。











