web-dev-qa-db-ja.com

Rails Rubyデバッガーで「シンボルが見つかりません:_Ruby_current_thread(LoadError)」をスローします

標準のRuby-headとRails3.1rc4。Ruby-debugを http://dirk.net/2010/04/17/Ruby-debugからの指示に従ってインストールしました。 -with-Ruby-19x-and-Rails-3-on-rvm /

しかし、Rails s --debuggerを実行すると、この奇妙なエラーがスローされます

/Users/schovi/.rvm/gems/Ruby-head/gems/activesupport-3.1.0.rc4/lib/active_support/dependencies.rb:237:in `require': dlopen(/Users/schovi/.rvm/gems/Ruby-head/gems/linecache19-0.5.12/lib/trace_nums19.bundle, 9): Symbol not found: _Ruby_current_thread (LoadError)
  Referenced from: /Users/schovi/.rvm/gems/Ruby-head/gems/linecache19-0.5.12/lib/trace_nums19.bundle
  Expected in: flat namespace
in /Users/schovi/.rvm/gems/Ruby-head/gems/linecache19-0.5.12/lib/trace_nums19.bundle - /Users/schovi/.rvm/gems/Ruby-head/gems/linecache19-0.5.12/lib/trace_nums19.bundle
from /Users/schovi/.rvm/gems/Ruby-head/gems/activesupport-3.1.0.rc4/lib/active_support/dependencies.rb:237:in `block in require'
from /Users/schovi/.rvm/gems/Ruby-head/gems/activesupport-3.1.0.rc4/lib/active_support/dependencies.rb:223:in `block in load_dependency'

何か案が?ありがとう、David

52
Schovi

更新:

あなたはこれをあなたのgemfileに入れるだけでよいように見えます:

宝石「デバッガ」

そして今働きます。

古い記事が続きます

====================================

ジェロームは正しいですが、詳細に欠けています。これからの一撃一撃です https://Gist.github.com/13315 から取られました、特にアンドリューロスの投稿のおかげです。この投稿の時点でこれをテストしました。変更が標準のどこかにまもなく導入されることを期待しています。

Installing Ruby debugger on Ruby 1.9.3-p125: 

export PATCH_LEVEL=`Ruby -e 'puts Ruby_PATCHLEVEL'`
export RVM_SRC=$HOME/.rvm/rubies/Ruby-1.9.3-p$PATCH_LEVEL/include/Ruby-1.9.1
gem install archive-tar-minitar
gem install Ruby_core_source -- --with-Ruby-include=/$RVM_SRC
export RVM_SRC=$HOME/.rvm/rubies/Ruby-1.9.3-p$PATCH_LEVEL/include/Ruby-1.9.1/Ruby-1.9.3-p$PATCH_LEVEL

wget http://rubyforge.org/frs/download.php/75415/Ruby-debug-base19-0.11.26.gem
wget http://rubyforge.org/frs/download.php/63094/Ruby-debug19-0.11.6.gem
wget http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem
gem install linecache19-0.5.13.gem -- --with-Ruby-include=/$RVM_SRC
# if that step failed, and you are running OSX Lion, then following this post can help you: 
# http://stackoverflow.com/questions/8032824/cant-install-Ruby-under-lion-with-rvm-gcc-issues
# this happens if you recently installed xcode from the app store. 
# bizarrely, for me I had to do this: ln -s /usr/bin/gcc /usr/bin/gcc-4.2
gem install Ruby-debug-base19-0.11.26.gem -- --with-Ruby-include=/$RVM_SRC

Then edit Gemfile: 

gem 'linecache19', '0.5.13', :path => "~/.rvm/gems/Ruby-1.9.3-p#{Ruby_PATCHLEVEL}/gems/linecache19-0.5.13/"
gem 'Ruby-debug-base19', '0.11.26', :path => "~/.rvm/gems/Ruby-1.9.3-p#{Ruby_PATCHLEVEL}/gems/Ruby-debug-base19-0.11.26/"
gem 'Ruby-debug19', :require => 'Ruby-debug'

Then install: 

bundle install
54
Rob

私は gem 'debugger' を使用しました。これは、1.9.2および1.9.3で動作し、rvm/rbenvルビーに簡単にインストールできるRuby-debug(19)のフォークです。エラーが消えます!

21
Mustafah

現時点では、これはRuby-debug-baseの既知のバグのようです。バグトラッカーの問題にコメントを追加しました。メモの追加も検討してください。

http://rubyforge.org/tracker/index.php?func=detail&aid=29222&group_id=8883&atid=3429

それまでの間、Ruby 1.9にはデバッガが組み込まれており、very遅いです。手動でこのrequire行を追加してくださいあなたのコードに:

require 'debug'

また、デバッガーはデフォルトですべてのStandardError例外で中断するため、最初の起動時にこれを実行します。

catch off
11
Travis Warlick

Ruby 1.9.3xを実行している場合は、修正するには rubyforge上のRuby-debug に移動し、Ruby-debug-base 0.11.26とlinecache19 0.5をダウンロードしてインストールします.13。これらのファイルを使用するようにGemfileを変更して、次を実行します。

bundle update Ruby-debug-base19

これでデバッガは動作するはずです。

ありがとうジェローム

6
jtblin

私のシステムはrvm 1.18.10で、Ruby 1.9.3p392がMac OSX 10.8.5にインストールされています。最初にgem 'Ruby-debug19'をインストールしましたが、よく知られている理由により、デバッガは作業。

次に走った

local$ gem install 'debugger'

他の多くの投稿で提案されています。 gemは正常にインストールされ、次の出力が表示されました。

local$ gem install debugger
Fetching: debugger-Ruby_core_source-1.2.3.gem (100%)
Fetching: debugger-linecache-1.2.0.gem (100%)
Fetching: debugger-1.6.2.gem (100%)
Building native extensions.  This could take a while...
Successfully installed debugger-Ruby_core_source-1.2.3
Successfully installed debugger-linecache-1.2.0
Successfully installed debugger-1.6.2
3 gems installed
Installing ri documentation for debugger-Ruby_core_source-1.2.3...
Installing ri documentation for debugger-linecache-1.2.0...
Installing ri documentation for debugger-1.6.2...
Installing RDoc documentation for debugger-Ruby_core_source-1.2.3...
Installing RDoc documentation for debugger-linecache-1.2.0...
Installing RDoc documentation for debugger-1.6.2...
local$ irb
1.9.3-p392 :002 > require 'debugger'
=> true

次に走った

local$ Rails server --debug
/usr/local/rvm/gems/Ruby-1.9.3-p392/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:
in`require': dlopen(/usr/local/rvm/gems/Ruby-1.9.3-p392/gems/Ruby-debug-base19-0.11.25/lib/Ruby_debug.bundle,
9): Symbol not found: _Ruby_current_thread (LoadError)
Referenced from: /usr/local/rvm/gems/Ruby-1.9.3-p392/gems/Ruby-debug-base19-0.11.25/lib/Ruby_debug.bundle
Expected in: flat namespace
 in /usr/local/rvm/gems/Ruby-1.9.3-p392/gems/Ruby-debug-base19-0.11.25/lib/Ruby_debug.bundle - /usr/local/rvm/gems/Ruby-1.9.3-p392/gems/Ruby-debug-base19-0.11.25/lib/Ruby_debug.bundle
......

「gem 'Ruby-debug19'」という行をコメント化し、Gemfileに「gem 'debugger'」という新しい行を追加することでこのエラーを解決し、実行しました

local$ bundle update

その後、すべてがうまくいきました。

local$ Rails server --debug
=> Booting WEBrick
=> Rails 3.2.14 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
=> Debugger enabled
[2013-10-15 12:50:21] INFO  WEBrick 1.3.1
[2013-10-15 12:50:21] INFO  Ruby 1.9.3 (2013-02-22) [x86_64-darwin10.8.0]
[2013-10-15 12:50:21] INFO  WEBrick::HTTPServer#start: pid=7206 port=3000
0
Julia Zhao

これは修正され、すべてのデバッグの最新の宝石にアップグレードされました

0
Rubytastic

Ruby 1.9.3を使用して、gem 'Ruby-debug-base19x'(名前の最後にある「x」に注意)に加えて、gemを追加することでこれを機能させることができました「Ruby-debug19」。

0
EK0