2011-06-22 66 views
52

我有標準的紅寶石頭和Rails的3.1rc4。 我安裝紅寶石調試與以下說明從http://dirk.net/2010/04/17/ruby-debug-with-ruby-19x-and-rails-3-on-rvm/Rails與紅寶石調試器拋'找不到符號:_ruby_current_thread(LoadError)'

但是當我運行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' 

任何想法? 謝謝,大衛

+0

你有沒有解決它?我有同樣的問題。 –

+0

很久以前。我認爲問題在於Ruby版本。我有一些1.9.2的邊緣,這是問題。現在我運行'ruby 1.9.2p180'並且沒問題。我重新安裝了整個ruby,rvm,gems在使用幾年之後會導致真正的大混亂:) – Schovi

+3

1.9.3-preview1中出現同樣的錯誤 –

回答

11

看起來這是ruby-debug-base中的一個已知bug,目前。我在bug追蹤器上添加了我的評論。 Plase考慮將你的筆記,以及:

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

在此期間,紅寶石1.9有一個內置的調試器;其只是很慢。手動添加此需要行代碼:

require 'debug' 

此外,在默認情況下,所有StandardError的例外中斷調試,所以做到這一點時,第一次啓動時:

catch off 
6

如果你正在運行的Ruby 1.9 .3x,修復它去ruby-debug on rubyforge,下載並安裝ruby-debug-base 0.11.26和linecache19 0.5.13。修改你的Gemfile使用這些文件,然後運行

bundle update ruby-debug-base19 

調試器現在應該可以工作。

感謝 傑羅姆

+2

ruby​​-debug-base19 v 0.11.26沒有在我的系統上編譯(使用rvm)。我不得不添加ruby include來編譯它:gem install ruby​​-debug-base19-0.11.26.gem - --with-ruby-include =〜/ .rvm/rubies/ruby​​-1.9.3-p0/include/ruby​​-1.9.1/ruby​​-1.9.3-p0/ – Joris

+0

沒有爲我工作,更新進行得很好,但仍然是相同的錯誤:(錯誤輸出: 快速調試器(ruby-debug-ide 0.4.17.beta8 ,ruby-debug-base 0.11.30.pre7)監聽127.0.0.1:60534 – Rubytastic

+0

這個工作對我來說gem install ruby​​-debug-base19-0.11.26.gem - --with-ruby-include =/Users/jirapong/.rvm/src/ruby​​-1.9.3-p0。take from https://gist.github.com/1331533 – Jirapong

54

UPDATE:

看起來像你只需要把這個在你的Gemfile:

寶石 「調試」

和現在的作品。

舊文章如下

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

傑羅姆是正確的,但缺乏細節。特別感謝andrewroth的職位,這是來自https://gist.github.com/1331533的打擊。我已經測試過這個帖子的時間。人們希望這些改變將盡快部署在某個地方。

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 
+0

試過這個對我不起作用 – Rubytastic

+0

我在Rob的帖子中做了所有的事情,但是gem的安裝失敗了。我必須在下載gem的目錄中執行以下操作: rvm [email protected] do gem install〜/ Downloads/linecache19-0.5.13.gem - --with-ruby-include = /用戶/ /。rvm/src/ruby​​-1.9.3-p0 rvm [email protected] do gem install〜/ Downloads/ruby​​-debug-base19-0.11.26.gem - --with-ruby我運行OSX Lion 10.7.3 – seanmrafferty

+0

我在Rob的帖子中做了所有的事情,但是安裝gem失敗了。我必須在下載gem的目錄中執行以下操作:rvm [email protected] do gem install〜/ Downloads/linecache19-0.5.13.gem - --with-ruby-include =/Users/ /。rvm/src/ruby​​-1.9.3-p0 rvm [email protected] do gem install〜/ Downloads/ruby​​-debug-base19-0.11.26.gem - --with-ruby-包括=/Users/<你的用戶名> /。rvm/src/ruby​​-1.9.3-p0我正在運行OSX Lion 10.7.3 – seanmrafferty

0

這是固定升級到所有最新的寶石調試

+0

仍然不適合我。你使用的是什麼版本的ruby-debug19和linecache19? – jasoncrawford

+0

這些是在我的開發小組中:你不需要它們所有的調試版本的檢查版本:group:development do gem「sunspot_solr」#可選的預先打包的Solr發行版用於開發 gem「annotate」 gem「騙子」 寶石‘填充器’ 寶石‘erb2haml’ 寶石‘工頭’ 寶石‘progress_bar’ 寶石‘simplecov’ 寶石‘紅寶石debug19’ 寶石‘紅寶石調試base19x’,「0.11.30.pre10 「 寶石 」紅寶石調試IDE「, '0.4.17.beta8' #gem 'newrelic_rpm' 寶石 」Capistrano的「 寶石 」捆綁「 結束 – Rubytastic

20

我用gem 'debugger'這是在1.9.2工程和1.9.3,輕鬆地安裝紅寶石調試(19)的一個分支爲rvm/rbenv紅寶石。 它使錯誤消失!

+2

謝謝...它工作,這太容易:) –

+1

它也爲我工作......謝謝。在OSX中使用'ruby 1.9.3p0'來自rvm – konus

0

使用ruby 1.9.3,除了'ruby-debug19'之外,通過添加gem'ruby-debug-base19x'(注意名稱末尾的'x'),我能夠得到這個工作。 。

+0

你的意思是在Gemfile中? – Jirapong

+0

是的,在Gemfile中。 – EK0

0

我的系統是rvm 1.18.10和ruby 1.9。Mac OSX 10.8.5上的3p392。我首先安裝了gem'ruby-debug19',但由於衆所周知的原因,調試器無法正常工作。

我然後跑

local$ gem install 'debugger' 

許多其他職位的建議。創業板是用下面的輸出成功安裝:

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 
...... 

我註釋掉行「寶石‘紅寶石debug19’」,並增加了新的生產線解決了這個錯誤「 gem'調試器'「在Gemfile中,然後運行

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