Debugger terminal error: Process failed: spawn rdebug-ide ENOENT
错误?ext install
,然后搜索ruby
)gem install ruby-debug-ide
gem install debase
{
"name": "Rails server",
"type": "Ruby",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "${workspaceRoot}/bin/rails",
"env": {
"PATH": "YOUR_PATH_HERE",
"GEM_HOME": "YOUR_GEM_HOME_HERE",
"GEM_PATH": "YOUR_GEM_PATH_HERE",
"RUBY_VERSION": "YOUR_RUBY_VERSION_HERE"
},
"args": [
"server"
]
}
在某些情况下,您可能不需要指定
env
部分。在其他情况下,您可以启动VS Code using the CLI(即来自终端),在某些系统上会自动设置正确的环境变量。
如果您收到以下错误
Debugger terminal error: Process failed: spawn rdebug-ide ENOENT
您的环境变量(env
)很可能未设置,并且插件无法找到必要的二进制文件。
bundler install --binstubs
。env
部分。运行以下shell命令以生成env
:printf "\n\"env\": {\n \"PATH\": \"$PATH\",\n \"GEM_HOME\": \"$GEM_HOME\",\n \"GEM_PATH\": \"$GEM_PATH\",\n \"RUBY_VERSION\": \"$RUBY_VERSION\"\n}\n\n"
我花了大半天时间试图解决这个问题。
我最终将我的launch.json配置剥离到以下内容:
"configurations": [
{
"name": "Rails server",
"type": "Ruby",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "/Users/mitch/.rvm/gems/ruby-2.3.0@gg_portal/bin/rails",
"args": [
"server"
],
"useBundler": true,
"pathToRDebugIDE": "/Users/mitch/.rvm/gems/ruby-2.3.0@gg_portal/gems/ruby-debug-ide-0.6.1",
"pathToBundler": "/Users/mitch/.rvm/gems/ruby-2.3.0@gg_portal/wrappers/bundle",
"showDebuggerOutput": true
}
]
首先,特别是如果您使用RVM并具有不同的Gemset,请确保您的路径与正确的Gemset一致。
什么解决了我的问题是pathToBundler。
which bundle
/Users/mitch/.rvm/gems/ruby-2.3.0@gg_portal/bin/bundle
设置binstubs bundler的路径(如上所示)和从/ wrappers /(如下所示)指向的bundler看起来有些不兼容,因此将pathToBundler更改为:
"pathToBundler": "/Users/mitch/.rvm/gems/ruby-2.3.0@gg_portal/wrappers/bundle",
解决了这个问题。
这里有一种相关的讨论:
https://github.com/rails/rails/issues/31193
虽然不是专门针对VSCode和调试,但它讨论的是binstubs。
如果您正在使用依赖于bash shims的ruby版本管理器(如rbenv),请尝试从终端启动VS Code。这应该允许VS Code获取rbenv设置的env变量。或者,您可以在launch.json
中设置env变速器,但这不是一个非常易于维护的解决方案。