如何在 VSCode 中通过 Logpoints 在不暂停的情况下调试运行代码

秋静大大_7843

秋静大大_7843

2026-06-13

473人浏览

原创

logpoint 是 vscode 中不中断执行、仅输出表达式求值结果到 debug console 的日志断点;普通 breakpoint 会暂停程序需手动继续,而 logpoint 适用于高频、异步及性能敏感场景,依赖调试器支持与 sourcemaps 正确配置。

如何在 vscode 中通过 logpoints 在不暂停的情况下调试运行代码

Logpoints 是什么,和普通 breakpoint 有什么区别

Logpoints 是 VSCode 调试器提供的一种「只打日志、不中断执行」的断点类型。它不会暂停代码运行,而是在命中时把指定表达式求值后输出到 Debug Console 或终端——这特别适合你只想观察某个变量在循环里怎么变、又不想被反复打断的情况。

普通 breakpoint 会 halt 线程,Logpoint 实际上是底层调试协议(如 DAP)下发的一个带 logMessage 的断点指令,背后由运行时(比如 Node.js 的 inspector 协议或 Chrome DevTools Protocol)支持。

  • Logpoint 只在支持该能力的调试器中生效:Node.js、Chrome、Edge、Python(需 Python extension ≥2023.8)、Go(Delve ≥1.21)等主流环境都已支持
  • 它不能替代 step-in/step-over,但能大幅减少「暂停 → 看变量 → resume → 再暂停」的机械操作
  • 如果你在 launch.json 里没启用 console: "integratedTerminal" 或没开 Debug Console,日志可能直接消失不见

如何在 VSCode 里设置一个有效的 Logpoint

VSCode 中设置 Logpoint 最快的方式是:在编辑器左侧 gutter 点击断点位置,然后长按鼠标左键(或右键)选择「Add Log Point…」;也可以用快捷键 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(Mac),输入「Debug: Toggle Log Point」触发。

设置时填入的内容会被当作模板字符串处理,支持以下语法:

  • {variableName}:自动求值并打印
  • {variableName, JSON}:以 JSON 格式展开打印(对对象/数组很实用)
  • {Date.now(), number}:强制转成数字格式(支持 number / string / hex)
  • 普通文本如 "count = {i}, time = {Date.now()}" 会被原样拼接

注意这些常见坑:

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 表达式必须是当前作用域可访问的,{this.state} 在箭头函数里会报 ReferenceError
  • 不支持语句,只能是表达式:{console.log('hi')} ❌(会报错),{'hi'} ✅
  • 如果用了未定义变量,Logpoint 会静默失败(不报错也不输出),建议先在 Watch 面板确认变量名拼写

为什么 Logpoint 有时不输出,或输出内容为空

最常遇到的不是「设不了」,而是「设了但看不到」。原因通常有三个层面:

  • 调试会话未真正启动:Logpoint 依赖调试器连接。如果只是按了 F5 但 launch.json 配置错误(比如 program 路径不存在),VSCode 可能显示「Started debugging」但实际没 attach 上,Logpoint 就不会触发
  • 源码映射失效:在 TypeScript 或 Webpack 构建项目中,如果 sourceMaps 关闭或路径不对,VSCode 找不到原始 .ts 行,Logpoint 就挂载失败(gutter 上显示空心圆圈,悬停提示「unbound」)
  • 运行时限制:Node.js 旧版本(

验证是否生效的小技巧:

  • 在 Logpoint 行加个普通 breakpoint,跑一次看是否能停住 → 确认断点位置可达
  • 在同一行加 console.log('test') 对比输出 → 排除逻辑跳过问题
  • 打开 Debug Console,输入 debugger; 触发一次暂停,再手动执行 console.log({yourVar}) → 确认变量确实存在且可读

Logpoint 和 console.log 的实际取舍建议

Logpoint 不是 console.log 的升级版,而是不同场景下的工具:

  • 临时观测、不想改源码、怕提交日志 → 用 Logpoint(关掉调试器就自动消失)
  • 需要长期保留、做条件过滤(如 if (x > 100) console.log(x))、或要输出到文件 → 还得写 console.log 或用 winston/pino
  • 多线程/异步密集场景(如 WebSocket 心跳、动画帧),Logpoint 因为不阻塞,比 console.log 更轻量;但高频 Logpoint(如每毫秒一次)仍可能拖慢 V8 的优化编译

一个小提醒:Logpoint 的表达式是在目标运行时环境中求值的,所以 {process.env.NODE_ENV} 能取到,但 {vscode.workspace.name} 这种 VSCode API 是拿不到的——它不在那个上下文里。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.02

6179

3

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.08.29

3005

6

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

2025.08.29

3868

10

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

2025.08.29

2685

10

vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

2023.06.30

1355

18

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.21

2832

3

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1969

12

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1727

8

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

2607

12

热门下载

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

精品课程

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