Sublime怎么调试代码_Sublime Debugger插件配置【调试】

1次阅读

sublime debugger 不识别 vs code 的 launch.json,需使用 .sublime-debugger 配置文件,顶层为 configurations 数组,含 type、request、name;python 调试需匹配 debugpy 版本(推荐 1.6.7),并指定绝对 python.path;node.js 调试需启用 sourcemaps 并正确配置 outfiles 和 runtimeargs。

Sublime怎么调试代码_Sublime Debugger插件配置【调试】

Sublime Debugger 插件装了但 launch.json 不生效?

根本原因是 sublime text 默认不读取 VS Code 风格的 launch.json——它压根不认识这个文件。Sublime Debugger(即 subl-debugger)用的是自己的一套配置机制,叫 .sublime-debugger,放在项目根目录或用户配置目录下。

  • 别把 VS Code 的 .vscode/launch.json 直接拷进 Sublime 项目里,它会被完全忽略
  • 新建配置必须是 .sublime-debugger(注意前面带点,是隐藏文件名)
  • 内容格式是 JSON,但顶层必须是 configurations 数组,且每个配置必须含 typerequestname
  • 常见 type 值:pythonnodego,不是 python3node20 这类

Python 调试时断点不命中,debugpy 版本对不上

Sublime Debugger 依赖 debugpy(Python)或 vscode-js-debug(JS)这类后端调试适配器,但不是所有版本都兼容。比如 debugpy >= 1.8 默认启用新协议,而旧版 Sublime Debugger 插件可能只认 1.6.x

  • 先查插件日志:按 Ctrl+Shift+P → 输入 Debugger: Show Log,看有没有 Connection refusedProtocol mismatch
  • 降级 debugpy 更稳妥:pip install debugpy==1.6.7(Python 3.8+ 推荐)
  • 确保 python.path.sublime-debugger 里指向你实际用的解释器,比如 /usr/bin/python3~/miniforge3/bin/python,不能只写 python
  • 如果用 virtualenv,路径必须是激活后的绝对路径,否则断点加载失败

Debugger: Start Debugging 按下没反应,终端里也没报错?

这通常不是插件坏了,而是调试会话卡在「等待适配器就绪」阶段。Sublime Debugger 不会自动拉起 debugpy,得手动启动监听,或者靠配置触发。

  • 对 Python:要么提前运行 python -m debugpy --listen 5678 --wait-for-client,再点启动;要么在 .sublime-debugger 里加 "preLaunchTask": "python-debugpy" 并配好 Tasks.sublime-settings
  • 检查 port 是否被占:lsof -i :5678macos/linux)或 netstat -ano | findstr :5678windows
  • Windows 用户注意:路径分隔符必须用正斜杠 / 或双反斜杠 ,单反斜杠 会导致 JSON 解析失败,静默跳过配置
  • 确认 Sublime 是最新版(4147+),老版本对调试器握手超时时间太短,容易假死

调试 Node.js 时 require 报错或源码映射失效

Node.js 调试依赖 sourcemap 和入口路径对齐。Sublime Debugger 对 ts-nodeesbuildwebpack 构建产物支持有限,容易找不到原始 .ts 文件。

  • 优先用原生 Node 启动:配置 "type": "node" + "program": "./src/index.js",避免 ts-node 中间层
  • TS 项目务必生成 .map 文件,并在 .sublime-debugger 里加 "sourceMaps": true"outFiles": ["./dist/**/*.js"]
  • 如果用 ESM(type: "module"),需显式指定 "runtimeArgs": ["--enable-source-maps"],否则断点无效
  • 不要在 node_modules 里设断点——Sublime Debugger 默认跳过,想进去得加 "skipFiles": [] 并清空数组

调试真正卡住的地方,往往不是配置写错,而是调试器、适配器、运行时三者之间协议版本或路径解析的微小错位。多看 Debugger: Show Log 输出,比反复改 launch.json 有效得多。

text=ZqhQzanResources