You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Visual Studio Code中调试Rackup应用?解决rbenv兼容问题

在VS Code中调试Ruby Rack应用的问题

我之前搜过类似问题,但没找到和自己方案匹配的解决办法。在Visual Studio Code里调试Ruby编写的Rack应用遇到了麻烦——因为Rack的启动脚本本质是bash脚本,而rebornix.Ruby调试器无法处理它。

我试过一些配置示例,却出现了如下错误:

Fast Debugger (ruby-debug-ide 0.7.3, debase 0.2.5.beta2, file filtering is supported) listens on 127.0.0.1:1234

Uncaught exception: /home/mslinn/.rbenv/shims/rackup:3: syntax error, unexpected string literal, expecting `do' or '{' or '('
[ -n "$RBENV_DEBUG" ] && set -x
^
/home/mslinn/.rbenv/shims/rackup:3: syntax error, unexpected ']', expecting end-of-input
[ -n "$RBENV_DEBUG" ] && set -x

^

非调试状态下,我使用bundler启动Rack应用的命令是:

$ bundle exec rackup

我的VS Code启动配置如下:

{
  "args": [
      "-p", "9292",
      "-E", "development"
  ],
  "cwd": "${workspaceRoot}",
  "name": "Debug rackup application",
  "pathToBundler": "${userHome}/.rbenv/shims/bundle",
  "pathToRDebugIDE": "${userHome}/.rbenv/shims/rdebug-ide",
  "program": "${userHome}/.rbenv/shims/rackup",
  "request": "launch",
  "showDebuggerOutput": true,
  "type": "Ruby",
  "useBundler": true,
}

当前配置的核心问题是:rbenv的shims是bash脚本,它们会调用对应的gem,但我不想在配置里硬编码gem的路径——因为项目更新gem后,配置会直接失效。

我的Gemfile内容:

source 'https://rubygems.org'

gem 'data_mapper'
gem 'dm-sqlite-adapter'
gem 'sinatra', '>=3.0.5'
gem 'sinatra-flash'
gem 'warden'

gem 'debase', require: false
gem 'rackup', require: false
gem 'ruby-debug-ide', require: false
gem 'rubocop', require: false
gem 'rubocop-rake', require: false
gem 'rubocop-rspec', require: false
gem 'shotgun', require: false
gem 'thin', require: false

内容的提问来源于stack exchange,提问作者Mike Slinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 23:46:01