VSCode调试新法:列断点

简介: VS Code列断点(Column Breakpoints)支持在单行内精准定位语句级断点,解决压缩代码、链式调用等“一行多语句”调试难题。按Shift+F9即可在任意列位置设断点,大幅提升复杂场景下的调试效率。(239字)

前段时间帮一个朋友排查前端问题。他在页面里引了一个第三方库,打包上线之后某个功能挂了,但本地开发环境跑得好好的。

我说:"那你直接在源码里打个断点看看呗。"

他说:"源码我改了,但打包之后不是压缩了嘛,整个文件就一行,几万个字符。我在那一行打了断点,程序停下来了,但我根本不知道它停在哪一句上。"

我凑过去看了一眼。那一行确实很长,横向滚动条拖到底都看不到头。他在那一行上打了一个红点,调试器确实停住了,但调用栈里的位置显示的是“这一整行”,而不是具体的某个语句。

他试着用 console.log 往里面插,但压缩代码没法直接改。他又试着把那行拆开,结果发现拆完之后打包配置又对不上。

折腾了半个下午,最后是靠二分法一点点缩小范围找到的问题。

当时我就想:如果断点能打在这一行里的某个具体位置,而不是整行,是不是就不用这么折腾了?

后来我才发现,VS Code 其实已经加了类似的功能,叫列断点(Column Breakpoints)。

为什么一行多语句这么难调?

正常写代码的时候,我们通常是一行一个语句。这种情况下,行断点够用。

但有些场景,一行里会塞进多个语句:

压缩后的代码。 打包工具把整个文件压成一行,几千个语句挤在一起。你在这一行打断点,程序停了,但停在哪一句?不知道。

链式 Promise。 JavaScript 里常见的写法:

fetchData().then(res => res.json()).then(data => process(data)).catch(err => handleError(err));

这一行里有四个可执行语句。你想知道是 fetchData 出了问题,还是 process 出了问题,行断点只会告诉你“这一行有问题”,但不会告诉你具体是哪一个。

逗号表达式。 C 语言里的 a = 1, b = 2, c = 3;,一行三个赋值操作。

列断点就是为了解决这种“一行多语句”的调试场景而生的。

它怎么用?

在调试会话中,把光标放在某一行的某个位置,按 Shift + F9,断点会打在这个“列位置”上,而不是整行上。
在这里插入图片描述

如果你在同一行的不同位置分别按 Shift + F9,就会在同一行上生成多个断点,每个断点对应一个不同的语句。

vscode更强的一点是,为了管理多个列断点,还支持编辑它们
在这里插入图片描述

在调试面板里,这些断点会按列位置分开显示,让你一眼就能看出程序到底停在了哪个语句上。

说实话,这个功能不是给所有人用的。但如果你曾经在一行几百个字符的压缩代码里,对着一个行断点发呆,不知道程序到底停在哪——这个功能,就是为你准备的。

相关文章
|
21天前
|
IDE Linux Go
Github 开源一周1.2k star,Go主打的第一款Agent IDE官宣开源了
Rune IDE:Go编写、GPU加速的全新键盘驱动编辑器,融合GUI与tmux终端体验。支持Vim/Emacs/VS Code三套统一键控,命令式操作、可编辑文件浏览器、内置Go调试器(dlv),开源于2026年9月,当前仅限macOS/Linux。(239字)
|
4月前
|
人工智能 API C++
Claude Code 2.1.163 新特性:c to copy
Claude Code 新增「c to copy」快捷键:按 `c` 即可将 AI 的原始 Markdown 答案(含代码块、标题、列表等格式)一键复制,粘贴至 Notion/Obsidian/GitHub 等平台自动渲染。省去手动排版,守护心流,小功能见真功夫。(239字)
871 122
|
7月前
|
Rust 算法 开发工具
Git 2.53 新特性:Rust加持的Diff 性能再次加速
Git 2.53重磅升级:智能维护(按需执行,省资源)、blame支持多算法精准追溯、replay一步完成引用更新、diff速度提升5倍且内存减半,跨平台体验更顺滑——开发更高效,运维更省心!
438 1
|
4月前
|
人工智能 开发工具 开发者
VS Code 用了 5 年的功能,Zed 1.6刚做出来就直接封神了
Zed编辑器v1.6推出提交历史分栏Diff切换功能:支持单栏流式与左右分栏双模式自由切换,直观对比代码变更,无需外接工具;深度集成Git面板,提升审查效率、降低理解成本,强化一站式开发体验。(239字)
453 1
|
4月前
|
人工智能 前端开发 Shell
用完Zed之后,我发现了VS Code 和Zed的一个重大区别
作者尝试Zed等轻量编辑器后,发现VS Code真正的优势在于“工作流连续性”:自动恢复终端历史、工作目录、分屏布局与命令上下文,极大降低心智负担。这并非功能堆砌,而是将终端深度融入开发环境的状态管理——轻快易用与环境记忆之间,开发者终需权衡。(239字)
409 0
|
5月前
|
IDE 前端开发 开发工具
Google 的 IDE 演进小史
本文回顾Google IDE演进史:从工程师各用所爱(Vim/Emacs/IntelliJ/VS Code),到因超大规模代码库(google3)催生云端IDE Cider,再升级为融合VS Code前端的Cider V。其核心不是统一工具,而是以云化语言服务重构开发体验,将IDE升维为连接代码库、构建、审查与AI的工程杠杆。
420 0
Google 的 IDE 演进小史
|
5月前
|
人工智能 Rust 开发工具
Zed 1.0正式发布:VS Code慌了?
Zed 1.0正式发布!这款用Rust打造、GPU加速的“游戏引擎级”编辑器,告别Electron瓶颈,实现毫秒级响应;原生集成AI多Agent协作,支持DeltaDB字符级同步。它不是VS Code替代品,而是对编辑器本质的重新定义——性能即自由,人机协作为常态。(239字)
467 1
|
5月前
|
人工智能 IDE Shell
Zed IDE这个终端新功能,治好了我的窗口切换焦虑
Zed IDE近期发布多项重磅更新,尤其新增“New Center Terminal”功能,让终端可直接在编辑区并排打开,告别拖拽拼图式操作。本文详解其双终端模式、心流提升逻辑及开源协作精神,并展望AI驱动的智能终端未来。(239字)
493 2
|
5月前
|
人工智能 开发工具 git
Zed 这个 Git 小功能,让我少敲了 1000 次复制粘贴
Zed 新增 `git: view commit` 命令,支持在命令面板中直接输入任意 Git ref(如 `HEAD`、`main`、`abc1234` 或 `HEAD~3`),秒开提交详情。带实时预览、防抖查询与友好报错,免去复制粘贴,大幅提升高频操作效率。(239字)
237 1