上下文:我最近从 Sublime Text 切换到 Visual Studio Code 以测试 Microsoft 文本编辑器的调试功能。这里的主要问题是我的 Ruby on Rails 环境是在 Windows 上的 Ubuntu 中的 bash 上设置的。
我将集成终端 shell 更改为 bash,因此,我可以使用集成终端启动/调试我的应用程序。但是当使用使用 Ruby 扩展(https://github.com/rubyide/vscode-ruby)的集成调试工具时,它似乎启动了 windows cmd 来执行配置:
Debugger terminal error: Process failed: spawn rdebug-ide.bat ENOENT
问题:我的问题是不是 vscode
尝试使用 windows cmd 而不是指定的 bash shell 引起的?如果是这样,有没有办法告诉 vscode
使用它而不是 windows cmd?
这是我要执行的任务的 launch.json
配置:
{
"version": "0.2.0",
"configurations": [
{
"name": "Rails server",
"type": "Ruby",
"request": "launch",
"cwd": "/mnt/c/Repos/<project_name>",
"program": "rails",
"pathToRDebugIDE":
"~/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.6.0/bin/rdebug-ide",
"args": ["server"]
}
}
最佳答案
Visual Studio Code 的 Ruby 扩展只能使用 cmd 来启动调试器。因此,您需要一个 .cmd 包装器来调用 rdebug-ide。
安装适用于 Windows 的 RubyDevKit 应该提供必要的包装器,但您也可以使用下面的行。 它基本上看起来像这样:
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
ECHO.This version of Ruby has not been built with support for Windows 95/98/Me.
GOTO :EOF
:WinNT
@ruby.exe "%~dpn0" %*
(这将使用 PATH 中的 ruby.exe 来执行名为 .bat 文件的脚本,但没有扩展名。)
将它放在与 rdebug-ide 相同的位置并命名为 rdebug-ide.bat。 调整您的 launch.json,使 pathToRDebugIDE 指向此 .bat 文件(使用完整的 Windows 路径),并确保 ruby 在您的 PATH 中。
我目前正在将此设置与 cygwin 安装的 ruby、rdebug-ide、rails 等一起使用。
关于ruby-on-rails - VSCode 将调试 shell 更改为 Windows 上的 bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42956983/