在 vs code 中可直接在任意可执行行设实心红点断点调试,无需从入口开始;需确保文件被正确加载、路径匹配、source map 准确,并注意保存后重启调试会话以更新断点位置。

怎么在 VS Code 里只调试某几行代码
直接用断点(breakpoint)就行,不是非得从 main 或入口函数开始跑。VS Code 的调试器支持在任意可执行行打点,运行时停在那里,后续单步、看变量、改值都只影响当前上下文。
常见错误是点了「启动调试」却没设断点,结果整个程序跑完才退出;或者打了断点但文件没被加载(比如没在当前调试配置的 program 路径里),断点变空心灰点——那其实是未命中,不是没生效。
- 确保你在想停的地方左侧 gutter 点了一下,出现实心红点才算设上
- 如果用了
launch.json,确认program指向的是你正在编辑的文件,而不是别的入口脚本 - 对 Python/Node.js 等解释型语言,断点能打在普通 .py/.js 文件里;对 Go/Rust 等编译型语言,需确保源码路径和二进制符号匹配,否则断点可能不触发
调试时跳过无关函数或模块
不想一步步跟进去第三方库或工具函数?用「跳过」(Step Over)F10,别按 F11(步入)。VS Code 默认快捷键清晰,但容易手滑按错。
更彻底的办法是加「跳过设置」:在 launch.json 里配 skipFiles,填 glob 模式,比如 ["<node_internals>/**", "**/node_modules/**"]</node_internals>,这样调试器连进都不进那些路径。
-
skipFiles是白名单逻辑:列出来的路径会被跳过,不在列表里的才可断点 - 路径通配符要小心,
**/lodash/*.js可能漏掉压缩版lodash.min.js,建议写成**/lodash/**/*.js - 某些语言扩展(如 Python 的 PTVSD)还支持
justMyCode: true,自动过滤标准库和 site-packages
临时修改变量值继续调试
断点停住后,在「变量」面板里双击值就能改,改完回车立即生效。这对验证边界条件、绕过网络请求、模拟错误返回特别快。
Flash ActionScript3 高级教程 pdf,书籍部分目录: 第一章 高级 碰撞检测 不规则图形的检测碰撞 BitmapData.hitTest用于非位图 大量对象的碰撞检测 实现基于网格的碰撞检测 编写网格代码 测试并调整网格 使用此类 检测不只是为了碰撞 第二章 转向 行为 2D向量(Vector2D)类 机车(Vehicle)类 转向机车(SteeredVehicle)类 寻找行为 避开行为 到达行为
但注意:改的是运行时内存里的值,不是源码;而且有些类型改不了,比如 Python 的 tuple、JS 的 const 声明变量、或者已被优化掉的局部变量(尤其开启 devtool: "source-map" 但没关 production mode 时)。
- 改对象属性安全,改引用本身(如
obj = {...})可能不生效,因为栈帧里存的是旧地址 - Node.js 调试中,用调试控制台输
obj.prop = "new"比面板点选更灵活 - 改完别忘了继续运行(
F5),否则卡在断点不动
为什么改了代码但断点不更新
最常踩的坑:保存了文件,但没重启调试会话。VS Code 不会热重载断点位置,尤其是你删了某行、整段剪切粘贴后,旧断点还挂在原来行号上,而那行可能已变成注释或空行。
另一个原因是 source map 错位。比如 Webpack 打包后代码行号偏移,但 launch.json 里没配对的 sourceMaps: true 和正确 outFiles,断点就打不到真实位置。
- 每次大改结构后,先点调试面板右上角「重启」图标,比停掉再点绿色三角更稳
- 检查调试控制台输出有没有
Could not read source map或Breakpoint ignored这类提示 - TS/JS 项目务必确认
tsconfig.json里"sourceMap": true已开,且编译输出目录和launch.json的outFiles一致
断点本质是行号+文件路径的硬绑定,它不理解你的逻辑意图,只认当前加载进调试器的那套映射关系。稍微动了结构,就得重新对齐。









