You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么我无法对自行开发的VSCode扩展进行调试?

VSCode 扩展调试无报错排查方案

1. 修正 launch.json 配置

你当前使用的"version": "0.1.0"是已废弃的配置版本,且缺少必要的调试日志参数,替换为以下配置:

{
  "version": "2.0.0",
  "configurations": [
    {
      "name": "Launch Extension",
      "type": "extensionHost",
      "request": "launch",
      "runtimeExecutable": "${execPath}",
      "args": ["--extensionDevelopmentPath=${workspaceRoot}"],
      "trace": true,
      "env": {
        "VSCODE_DEBUG_EXTENSION_HOST": "1"
      }
    }
  ]
}

"trace": true会输出调试器和扩展宿主的完整交互日志,方便定位底层通信问题。

2. 开启扩展宿主全量日志

打开项目窗口的设置,搜索extensions.logLevel,将日志级别调整为Trace,重启调试后,所有扩展运行的底层细节都会输出到Output面板的「Log (Extension Host)」分类中,包括未抛出的隐式错误。

3. 校验扩展激活逻辑

  • 检查package.json中activationEvents配置是否匹配你触发扩展的操作,若激活事件未命中,扩展代码不会运行,自然不会产生报错
  • 在入口文件的activate函数第一行添加断点,触发扩展激活逻辑后查看断点是否命中:
    • 断点未命中:检查package.json的main字段是否指向正确的编译后入口文件,TypeScript开发的场景下需确认tsc编译无报错,代码已经正常生成
    • 断点命中:逐行步进执行代码,定位到无输出的异常逻辑段

4. 排查静默错误

部分异步代码抛出的未捕获错误会被VSCode扩展宿主静默吞掉,你可以在入口文件最顶部添加全局异常捕获逻辑:

process.on('unhandledRejection', (err) => {
  console.error('Unhandled Rejection:', err);
});
process.on('uncaughtException', (err) => {
  console.error('Uncaught Exception:', err);
});

添加后所有未处理的异常都会输出到调试控制台。

内容的提问来源于stack exchange,提问作者user6819710

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:36:03