Home Articles

VSCode将调试shell更改为在windows上进行bash

Asked
Viewed 948 times
2

Context: 我最近从Sublime Text切换到Visual Studio Code以测试Microsoft文本编辑器的调试功能 . 这里的主要问题是我的Ruby on Rails环境在Windows上的Ubuntu中设置为bash .

我将集成终端shell更改为bash,因此,我可以使用集成终端来启动/调试我的应用程序 . 但是当使用集成调试工具使用Ruby扩展(https://github.com/rubyide/vscode-ruby)时,它似乎启动了windows cmd来执行配置:

调试器终端错误:进程失败:生成rdebug-ide.bat ENOENT

Question: 我的问题是由 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"]
    }
}

1 Answer

  • 0

    Visual Studio Code的Ruby扩展只能使用cmd来启动调试器 . 因此,您需要一个.cmd包装器来调用rdebug-ide .

    安装RubyDevKit for Windows应提供必要的包装器,但您也可以使用下面的行 . 它基本上看起来像这样:

    @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等 .

Related