如何在远程容器内调试VSCode扩展?vscode-tomcat调试报错求助
远程容器内调试VSCode扩展操作指南
前置准备
- 远程RHEL7容器内安装Node.js 14及以上版本,匹配VSCode扩展运行的Node环境要求
- 本地VSCode保持最新版本,原生支持远程扩展调试能力,无需额外安装第三方插件
调试操作步骤
- 第一步:在远程容器内拉取vscode-tomcat扩展源码,切换到你当前安装使用的扩展对应版本,避免版本差异导致问题无法复现
- 第二步:进入源码根目录执行
npm install安装依赖,完成后执行npm run compile编译生成可调试的产物文件 - 第三步:在源码目录下创建
.vscode/launch.json文件,写入以下调试配置:
{ "version": "0.2.0", "configurations": [ { "name": "Debug Tomcat Extension", "type": "extensionHost", "request": "launch", "args": ["--extensionDevelopmentPath=${workspaceFolder}"], "env": {"DEBUG": "vscode-tomcat:*"} } ] }
- 第四步:按下F5启动调试,此时会弹出新的扩展开发宿主VSCode窗口,该窗口运行的是你本地拉取的调试版tomcat扩展
- 第五步:在新弹出的窗口中复现启动Tomcat调试的操作,触发报错后回到源码窗口,即可在调试面板查看调用栈、上下文变量,定位具体报错位置
针对当前报错的排查建议
你遇到的
TypeError: Cannot set property 'readableListening' of undefined错误仅出现在SSH远程场景,可优先排查扩展中远程环境判定逻辑、以及Tomcat启动日志流初始化逻辑,大概率是远程场景下流实例未正确赋值就尝试访问属性导致的问题
内容的提问来源于stack exchange,提问作者Jesse
相关产品推荐
相关产品推荐

