70

我刚刚更新到 Ruby 1.9.3p0 和 Rails 3.1.1。现在,当我尝试启动服务器时,它抱怨我应该 install ruby-debug,即使它已经安装了。

% rails server --environment=development --debug
=> Booting WEBrick
=> Rails 3.1.0 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 我有

# see: http://stackoverflow.com/questions/1083451/debugging-in-ruby-1-9
gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"

是否可以使用最新版本的 Ruby 运行调试?

4

9 回答 9

102

更新(2012 年 4 月 28 日)

尝试使用新的调试器gem 作为 ruby​​-debug 的替代品。

归功于@ryanb


更新(2012 年 3 月 2 日)

linecache19 和 ruby​​-debug-base19 的安装可以通过以下方式轻松完成:

bash < <(curl -L https://raw.github.com/gist/1333785)

归功于@fredostarr


原始答案

你看过ruby​​-1.9.3-preview1 上的 ruby​​-debug19吗?

这是一个临时解决方案: http: //blog.wyeworks.com/2011/11/1/ruby-1-9-3-and-ruby-debug

网站摘录:

首先从http://rubyforge.org/frs/?group_id=8883下载 linecache19-0.5.13.gem 和 ruby​​-debug-base19-0.11.26.gem ,然后……</p>

$ gem install linecache19-0.5.13.gem 
Building native extensions.  This could take a while...
Successfully installed linecache19-0.5.13
1 gem installed
$ gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=/Users/santiago/.rbenv/source/ruby-1.9.3-p0  
Building native extensions.  This could take a while...
Successfully installed ruby-debug-base19-0.11.26
1 gem installed
$ irb
irb(main):001:0> require 'ruby-debug'
=> true
于 2011-11-11T01:04:58.237 回答
33

linecache19 和 ruby​​-debug-base19 的安装可以通过以下方式轻松完成:

bash < <(curl -L https://raw.github.com/gist/1333785)
于 2011-11-25T10:58:29.750 回答
5

其他人在评论中发布了尝试 Pry,这就是我所做的。这是 Rails 所必需的:

# Gemfile
gem 'pry-rails'


# In your Rails Project where you want a 'debugger'

puts 'i want to insert some code between this'

binding.pry

puts 'and this'

安装后我立即注意到我.irbrc没有加载,所以我没有得到漂亮的控制台输出。我还将它添加到我的“~/.pryrc”中

# setting up pry to have irb helpers like reload!
if defined?(Rails) && Rails.env
  extend Rails::ConsoleMethods
end

Pry 有一些我想检查的不错的特性,一旦有一种简单的方法可以将它集成到 Ruby 1.9.3 的 Rails 项目中,我可能还会返回到 ruby​​-debug。我可以从其他答案运行 curl 命令,但这是我必须为我们的 Rails 项目指出我的队友的东西,所以它不能很好地扩展 IMO。

于 2012-03-03T01:19:59.460 回答
4

也许不是这个问题的明确答案,但我是被一连串封闭的副本引导到这里的。

对我来说,问题是我在 ruby​​ 1.8 和 ruby​​ 1.9 中运行一个项目,而我的 Gemfile 需要这个更改:

gem 'debugger', :require => 'ruby-debug', :platforms => :mri_19
gem 'ruby-debug', :platforms => :mri_18

Now it works for both rubies.

For more info see here: http://gembundler.com/man/gemfile.5.html#PLATFORMS-platforms-

于 2012-08-28T15:16:16.530 回答
2

对于 Windows 用户:

第一次下载:linecache19-0.5.13.gem 和 ruby​​-debug-base19-0.11.26.gem 来自:http ://rubyforge.org/frs/?group_id=8883&release_id=46303

假设:Ruby 在 c:\Ruby1.93

将下载的 gem 文件放到 c:\temp (linecache19-0.5.13.gem 和 ruby​​-debug-base19-0.11.26.gem)

然后从命令行执行:

宝石安装 c:\temp\linecache19-0.5.13.gem

gem install c:\temp\ruby-debug-base19-0.11.26.gem -- --with-ruby-include=C:\Ruby1.93\include\ruby-1.9.1\ruby-1.9.3-p0

于 2012-01-26T01:45:42.013 回答
1

顺便说一句,如果您使用 ruby​​1.9.3 的最新补丁(falcon,https: //gist.github.com/1688857 ),请使用以下命令

wget http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem
wget http://rubyforge.org/frs/download.php/75415/ruby-debug-base19-0.11.26.gem

gem install linecache19-0.5.13.gem
## with rvm: 
gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$HOME/.rvm/src/ruby-1.9.3-p0-falcon
## with rbenv (this is a guess): 
gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$HOME/.rbenv/source/ruby-1.9.3-p0-falcon
于 2012-01-29T21:04:44.117 回答
1

在这里查看我的答案: Ruby-debug not working - 代码日志

这是关于让 Ruby 调试与以下设置一起工作

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

    rvm use ruby-1.9.3-p0@mygemset
    

基本上,我不得不使用:

linecache19 (0.5.13)
ruby-debug-base19x (0.11.30.pre10)
ruby-debug-ide (0.4.16)

请注意,我使用的不是 ruby​​-debug-base19 而是 ruby​​-debug-base19x

我希望这有帮助!

——弗莱迪

于 2012-02-13T13:02:29.497 回答
0

您还需要检查 gem 'ruby_source_code' 是否已经安装。

检查:http ://bugs.ruby-lang.org/issues/1857#note-8

于 2011-12-29T01:43:20.560 回答
0

如果你没有 rvm 并且假设你的 ruby​​ 安装在 /usr/local/ruby-1.9.3-po 你可以使用这个命令:

curl -L https://raw.github.com/gist/1533750 | 须藤/bin/bash

于 2011-12-29T12:12:56.950 回答