2011-11-24 76 views
15

我開始使用最新版本的rails(3.1.3)開始一個新的rails應用程序。當我嘗試啓動服務器時,Rails崩潰。首先,我固定this bug,現在我得到這樣一個ruby​​_threadptr_data_type錯誤

ruby-debug-base19-0.11.25/lib/ruby_debug.so: undefined symbol: ruby_threadptr_data_type 

有一個關於這個事情here討論,但我不能讓見識夠了,把事情的工作。

UPDATE

我更新了版本紅寶石調試

gem 'ruby-debug-base19x', '~> 0.11.30.pre4' 

,現在已轉移到這個錯誤

linecache19-0.5.12/lib/trace_nums19.so: undefined symbol: ruby_current_thread 

回答

33

好吧,事實證明,這兩種寶石,調試和linecache需要手動更新到最新版本。在我的Gemfile這些線的伎倆

gem 'linecache19', :git => 'git://github.com/mark-moseley/linecache' 
gem 'ruby-debug-base19x', '~> 0.11.30.pre4' 
gem 'ruby-debug19' 

要運行規範,你需要運行束的exec rspec的-d規範

+0

這與@Jakob_Cosoroaba的答案相同 – klaffenboeck

+2

@klaffenboeck - 是的,是的。這個人在他回答之前已經有一個星期左右的時間了。不知道他爲什麼複製它。 – declan

+0

不起作用。仍然有同樣的問題。試過必要的,沒有git和版本定義。一樣。 –

2

以下線路爲我工作:

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

( Hat tip to declan。他的評論對我來說不起作用,但它給了我想要添加linecache19的想法。)

+0

我嘗試了其他一切,這是解決我的問題的唯一解決方案。對於那些更新到Ubuntu 12.04,紅寶石將自動更新到1.9.3p0。 – Jon

0

嘗試所有提示後在stackove rflow,下面結合工作對我來說

gem 'linecache19', :git => 'git://github.com/mark-moseley/linecache' 
gem 'ruby-debug-base19x', '~> 0.11.30.pre4' 
gem 'ruby-debug19' 

我關於Ruby 1.9.3-P0運行的Rails 3.1.3 RVM

當我設置:require => 'ruby-debug'服務器將無法啓動。

-1

它的轉貼自this

我也碰到了這一點,並找到了解決辦法在Ruby 1.9.3 and ruby-debug。您需要安裝尚未正式發佈的ruby-debug-base19和linecache19版本。目前發佈的版本的確會導致你有異常。使用this gist

#To install ruby-debug on Ubuntu ruby-1.9.3 you need to download from http://rubyforge.org/frs/?group_id=8883 

linecache19-0.5.13.gem 
ruby_core_source-0.1.5.gem 
ruby-debug19-0.11.6.gem 
ruby-debug-base19-0.11.26.gem 

#Then in your console 

export RVM_SRC=/your/path/to/ruby-1.9.3 
# Note, your source path should be something like /home/user/.rvm/src/ruby-1.9.3-p0 

gem install archive-tar-minitar 
gem install ruby_core_source-0.1.5.gem -- --with-ruby-include=/$RVM_SRC 
gem install linecache19-0.5.13.gem -- --with-ruby-include=/$RVM_SRC 
gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=/$RVM_SRC 
gem install ruby-debug19-0.11.6.gem -- --with-ruby-include=/$RVM_SRC 

我試過了,它的工作!

這是解決我們的問題。

4

最後我發現了這個問題。 RubyMine中的調試器不使用bundle exec,因此它不使用git中的linecache19。您需要手動安裝它。

解決的問題在這裏找到:http://youtrack.jetbrains.com/issue/RUBY-9418?projectKey=RUBY

gem uninstall linecache19 
gem uninstall ruby-debug-base19x 
curl -OL http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem 
gem install linecache19-0.5.13.gem 
gem install ruby-debug-base19x –-pre 

確保卸載所有linecache19和紅寶石調試base19x!

+0

完美,謝謝! – Martynas