【问题标题】:Ruby-debug not workingRuby调试不起作用
【发布时间】:2011-12-02 03:56:36
【问题描述】:

我无法让服务器以调试模式启动:

即使我安装了所有正确的 gem,服务器仍拒绝启动。

$ gem install ruby-debug
ERROR:  Error installing ruby-debug:
       rbx-require-relative requires Ruby version ~> 1.8.7.

这不起作用,其他帖子说要使用 ruby​​-debug19:

David@DAVID-PC /c/triton6 
$ gem install ruby-debug19
Successfully installed ruby-debug19-0.11.6
1 gem installed
Installing ri documentation for ruby-debug19-0.11.6...
Installing RDoc documentation for ruby-debug19-0.11.6...

David@DAVID-PC /c/triton6 
$ rails server --debug
=> Booting WEBrick
=> Rails 3.1.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install > ruby-debug' 
Exiting

知道该怎么做吗?

这是我的 Gemfile:

source 'http://rubygems.org'

gem 'rails', '3.1.3'

# Bundle edge Rails instead:
# gem 'rails',     :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'
gem 'ruby-debug19'
gem 'execjs'
gem 'ruby-debug-ide'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails',   '~> 3.1.5'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'

group :test do
# Pretty printed test output
gem 'turn', '0.8.2', :require => false
end

【问题讨论】:

  • 此代码的新分支已经创建,现在正在运行。现在使用gem 'debugger'。这是一个链接,指向这个新版本用于核心 Rails 项目的位置:github.com/matschaffer/knife-solo/pull/38

标签: ruby-on-rails ruby-debug


【解决方案1】:

确保您的 Gemfile 中有 gem "ruby-debug19", :require => 'ruby-debug',然后运行 ​​bundle install :)

编辑:添加了重要的:require => 声明,我之前错过了

【讨论】:

  • 我添加了我的 Gemfile 并仔细检查了我在正确的位置执行
  • 知道我可以从这里去哪里吗?我完全不知所措。
  • 我认为 Joel 的答案是正确的:gem "ruby-debug19", :require => "ruby-debug". 至少,我的基于 Ruby 1.9 的 Rails 应用程序是这么说的(现在我懒得去看一些 Gemfiles...)
【解决方案2】:

在 Aptana Studio 3 中进行 ruby​​ 调试时,我遇到了同样的问题(以及更多问题)。我的设置和使其工作的过程:

  • Mac OS X Lion 10.7.2
  • Aptana Studio 3(内部版本 3.0.8.201201201658)
  • 使用 rvm,在我的项目工作目录中有一个 .rvmrc 声明:

    rvm use ruby-1.9.3-p0@mygemset
    

为了在 Aptana Studio 中进行 ruby​​ 调试,我现在进行了以下设置

  • 在我的 Gemfile 的末尾,我有:

    gem "ruby-debug-base19x", "0.11.30.pre10"
    gem 'ruby-debug-ide'
    

请注意,我没有使用 ruby​​-debug-ide19 和 ruby​​-debug19,Aptana Studio 只是拒绝使用这个 gem。无论如何,它总是选择 ruby​​-debug-ide 0.4.16。

我也没有使用 ruby​​-debug-base19,而是 ruby​​-debug-base19x。

  • 要构建最新的 ruby​​-debug-base19x,请确保指定正确的 ruby​​ 上下文(包括):

    rvm 1.9.3-p0@mygemset do gem install --pre ruby-debug-base19x -- --with-ruby-include=/Users/Freddy/.rvm/src/ruby-1.9.3-p0
    

丢失 rvm ...在不使用 rvm 时这样做。

  • 不要忘记从您的项目工作目录进行捆绑安装(或捆绑更新)。在我的终端中,当我键入“Bundle list”时,对于提到的 gem,列出了以下版本:

    linecache19 (0.5.13)
    ruby-debug-base19x (0.11.30.pre10)
    ruby-debug-ide (0.4.16)
    
  • 重要提示:如果您的 linecache19 版本为 0.5.12 而不是 .13,请从 RubyForge: ruby-debug19: Project Filelist 下载最新版本。我将它下载到我的 ~/Downloads 文件夹中,因此在我的 rvm 上下文中构建和安装这个 gem 如下:

    rvm 1.9.3-p0@mygemset do gem install ~/Downloads/linecache19-0.5.13.gem -- --with-ruby-include=/Users/Freddy/.rvm/src/ruby-1.9.3-p0
    

如果您需要安装 linecache19 0.5.13 版,别忘了再次运行 'bundle update'。

  • 在此之后,我在 ide 中运行调试器时遇到的最后一个问题(及其解决方案)如下所述:

Aptana 3 ruby debugger - Exception in DebugThread loop: undefined method `is_binary_data?'

将第一个答案中提供的代码放在 xml_printer.rb 中的“模块调试器”语句上方。

享受吧!

-- 弗莱迪

关于构建 ruby​​-1.9.3-p0 的说明。这有点超出了问题的范围,但是由于构建它(也)在这里是一个痛苦的提示。编译 ruby​​-1.9.3.-p0 给出了多个与 openssl 相关的编译器错误。最好在rvm环境下安装openssl-0.9.8n包:

  • 安装 XCode 4.2 后,首先需要将以下内容放入 .rvmrc 或 .profile 中:

    export CC=/usr/bin/gcc-4.2
    

不要启用它,例如$ source ~/.rvmrc

【讨论】:

    【解决方案3】:

    我想答案已经在您的 Gemfile 中了。

    gem 'ruby-debug19', :require => 'ruby-debug'
    

    【讨论】:

    • 堆栈跟踪说明了什么?
    【解决方案4】:

    ruby-debug 坏了。该项目有一个新的分支,现在正在被广泛使用。这是相同的代码,只是固定的。这个新版本现在用于核心 ruby​​ on rails 项目。

    这是新的宝石: https://github.com/cldwalker/debugger

    要使用它,只需将其包含在您的 gem 文件中

    gem 'debugger'
    

    这里是提交到 Rails 的链接:

    https://github.com/matschaffer/knife-solo/pull/38

    【讨论】:

    • 我已经安装了 cldwalker/debugger gem 并将它包含在我的 gemfile 中。当我运行 Aptana 3 调试服务器时,它仍然显示:无法找到 'rdebug-ide' 二进制脚本。可能需要安装“ruby-debug-ide”gem,或者可能需要将 gem 可执行目录添加到 PATH(通过“gem environment”检查位置)。
    • 你需要使用'ruby-debug-ide'吗?我个人不使用调试器的那部分,并且我的 Gemfile 中没有那个 gem。您是否尝试过将其取出并查看是否可以使调试器正常工作?我的 gem 文件中只有“调试器”,可以通过 rails 服务器进行调试。
    【解决方案5】:

    它对我有用的是:

    sudo gem install ruby-debug19
    gem install linecache19
    gem install ruby-debug-base19
    bundle update
    rails server -u
    

    【讨论】:

    • 在发布多个问题的复制和粘贴样板/逐字答案时要小心,这些往往会被社区标记为“垃圾邮件”。如果您这样做,则通常意味着问题是重复的,因此请将它们标记为:stackoverflow.com/questions/7802124
    • 感谢您的建议,只是为了提供帮助,因为我真的被卡住了
    【解决方案6】:

    这是我的灵魂。我跟着这篇文章没有成功。 :(

    我将以下 gem 添加到我的 Gemfile 并 ==>> 运行 $bundle install ...工作

    =添加到 Gemfile=> gem 'ruby-debug-ide', '~> 0.4.22'

    Installing ruby-debug-ide 0.4.22
    Using sass 3.2.19
    Using sass-rails 4.0.3
    Using sdoc 0.4.0
    Using spring 1.1.3
    Using sqlite3 1.3.9
    Using turbolinks 2.2.2
    Using uglifier 2.5.1
    Your bundle is complete!
    Use `bundle show [gemname]` to see where a bundled gem is installed.
    -SVE1411EGXB:~/Desktop/myapp$ 
    

    【讨论】:

      猜你喜欢
      • 2013-03-17
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      • 2011-06-04
      • 2012-02-06
      相关资源
      最近更新 更多