ruby-1.9.3-preview1上的ruby-debug19

ruby-1.9.3-preview1上的ruby-debug19,ruby,debugging,rubygems,Ruby,Debugging,Rubygems,可能重复: 我在ruby 1.9.3预览版上调试时遇到一些问题 我已通过以下命令使用rvm安装了1.9.3: rvm install 1.9.3 --reconfigure --debug -C --enable-pthread 并安装了ruby-debug19,其中包括: gem install ruby-debug19 -- --with-ruby-include=$rvm_path/src/ruby-1.9.3-preview1 debug gem安装得很好,但是当我打开一个带有de

可能重复:

我在ruby 1.9.3预览版上调试时遇到一些问题

我已通过以下命令使用rvm安装了1.9.3:

rvm install 1.9.3 --reconfigure --debug -C --enable-pthread
并安装了ruby-debug19,其中包括:

gem install ruby-debug19 -- --with-ruby-include=$rvm_path/src/ruby-1.9.3-preview1
debug gem安装得很好,但是当我打开一个带有debug的控制台或尝试任何带有debug标志的东西时,
rails c--debug
rspec spec--debug
。我得到以下错误:

/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require': dlopen(/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle, 9): Symbol not found: _ruby_current_thread (LoadError)
  Referenced from: /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle
  Expected in: flat namespace
 in /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle - /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `block in require'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `block in load_dependency'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:596:in `new_constants_in'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/ruby-debug-base19-0.11.25/lib/ruby-debug-base.rb:1:in `<top (required)>'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `block in require'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `block in load_dependency'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:596:in `new_constants_in'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/ruby-debug19-0.11.6/cli/ruby-debug.rb:5:in `<top (required)>'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler/runtime.rb:68:in `require'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler/runtime.rb:66:in `each'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler/runtime.rb:66:in `block in require'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler/runtime.rb:55:in `each'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler/runtime.rb:55:in `require'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler.rb:120:in `require'
    from /Users/mario/Work/project/config/application.rb:7:in `<top (required)>'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/railties-3.0.9/lib/rails/commands.rb:21:in `require'
    from /Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/railties-3.0.9/lib/rails/commands.rb:21:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active\u support/dependencies.rb:239:in'require':dlopen(/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle,9):未找到符号:_ruby_当前_线程(LoadError)
引用自:/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle
应为:平面命名空间
在/Users/mario/.rvm/gems/ruby-1.9.3中-preview1@project/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle-/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active\u support/dependencies.rb:239:in'block in require'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active\u-support/dependencies.rb:225:in'block-in-load\u-dependencity'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active\u-support/dependencies.rb:596:in'new\u-constants\u-in'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active\u-support/dependencies.rb:225:in'load\u-dependency'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active\u-support/dependencies.rb:239:in'require'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/ruby-debug-base19-0.11.25/lib/ruby-debug-base.rb:1:in`'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active\u-support/dependencies.rb:239:in'require'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active\u support/dependencies.rb:239:in'block in require'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active\u-support/dependencies.rb:225:in'block-in-load\u-dependencity'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active\u-support/dependencies.rb:596:in'new\u-constants\u-in'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active\u-support/dependencies.rb:225:in'load\u-dependency'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/activesupport-3.0.9/lib/active\u-support/dependencies.rb:239:in'require'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/ruby-debug19-0.11.6/cli/ruby-debug.rb:5:in`'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler/runtime.rb:68:in'require'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler/runtime.rb:68:in'block(2层)in require'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler/runtime.rb:66:in'each'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler/runtime.rb:66:in'block in require'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler/runtime.rb:55:in'each'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler/runtime.rb:55:in'require'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@global/gems/bundler-1.0.17/lib/bundler.rb:120:in'require'
from/Users/mario/Work/project/config/application.rb:7:in`'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/railties-3.0.9/lib/rails/commands.rb:21:in'require'
来自/Users/mario/.rvm/gems/ruby-1.9.3-preview1@project/gems/railties-3.0.9/lib/rails/commands.rb:21:in`'
来自脚本/rails:6:in'require'
来自脚本/rails:6:in`'

这里有一个临时解决方案:

网站摘录:

首先下载linecache19-0.5.13.gem和 ruby-debug-base19-0.11.26.gem from ,然后

$ 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
这是一张便条

基本上,解决方案是使用两个库的更新版本,v0.5.13和v0.11.26,这两个库都不在RubyGem repo中

# Install with:
# bash < <(curl -L https://raw.github.com/gist/1333785)
#
# Reference: http://blog.wyeworks.com/2011/11/1/ruby-1-9-3-and-ruby-debug

echo "Installing ruby-debug with ruby-1.9.3-p0 ..."

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

gem install linecache19-0.5.13.gem ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$rvm_path/src/ruby-1.9.3-p0/

rm linecache19-0.5.13.gem ruby-debug-base19-0.11.26.gem

echo "Done."
#安装时使用:

#bash 我建议改用;它似乎是ruby调试等等。另外,我也使用了
require'debug'
一段时间,在答案的顶部提到过(可能还有人们的投票),它让你进入的范围通常不是你所期望的。再次使用pry(注意,如果您想要像stepping这样的调试器,您还需要,我还没有需要/测试)


Saw(概述:您现在可以使用1.9s内置调试器),我刚刚了解了以下内容:

由于我注意到您正在尝试让它与Rails一起工作,如果您使用bundler,您可以将其添加到您的文件中:

gem 'linecache19', :git => 'https://github.com/mark-moseley/linecache.git' 
gem 'ruby-debug-base19', :git => 'https://github.com/mark-moseley/ruby-debug.git'
然后执行:

bundle config build.ruby-debug-base19 --with-ruby-include="$rvm_path/src/$(rvm tools strings)/"
bundle install

下面是我为使Bundler 1.x和Ruby 1.9.3-p0(发布的稳定版本)正常工作所做的工作。希望这将很快过时,但同时,如果这是您所需要的,这是一个可行的解决方法

首先,将linecache和ruby调试基础gems作为系统gems安装。注意,我从不同的地方得到这些

$ curl -OL http://rubyforge.org/frs/download.php/75415/ruby-debug-base19-0.11.26.gem
$ gem install linecache19-0.5.13.gem
$ gem install --pre ruby-debug-base19x # installs ruby-debug-base19x-0.11.30.pre4
接下来,为每个已安装的gem重新创建gem源:

$ mkdir ~/src/linecache19
$ cd /r193 # where your 1.9.3 is installed; system dependent
$ cd lib/ruby/gems/1.9.1 # where your gems are, should be the same
$ cp specifications/linecache19.gemspec ~src/linecache19
$ cp -r gems/linecache19-0.5.13/* ~/src/linecache19

$ mkdir ~/src/ruby-debug-base19x
$ cp specifications/ruby-debug-base19x-0.11.30.pre4.gemspec ~/src/ruby-debug-base19x
$ cp -r ruby-debug-base19x-0.11.30.pre4/* ~/src/ruby-debug-base19x
现在,您可以使用
:path
指令在GEM文件中引用这些目录。
group :development do
  gem 'linecache19', '~>0.5.12', :git => 'git://git-repo/ruby/linecache19.git'
  gem 'ruby-debug-base19x', :git => 'git://git-repo/ruby/ruby-debug-base19x.git'
  gem 'ruby-debug19', :require => 'ruby-debug'
  gem 'ruby-prof'
end
source 'http://rubydebug19.s3.amazonaws.com'

gem 'ruby-debug19', :group => :development