Rails с броском ruby-debugger 'Символ не найден: _ruby_current_thread (LoadError)' - PullRequest
52 голосов
/ 22 июня 2011

У меня есть стандартные ruby-head и Rails 3.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'

Есть идеи?Спасибо, Дэвид

Ответы [ 7 ]

54 голосов
/ 14 февраля 2012

ОБНОВЛЕНИЕ:

Похоже, вам нужно всего лишь поместить это в свой гемфайл:

самоцвет "отладчик"

и сейчас работает.

Старая статья следует

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

Джером прав, но не хватает деталей. Вот удар за ударом, взятый из этого 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: 
# /5494882/ne-udaetsya-ustanovit-ruby-pod-lion-s-rvm-problemy-gcc
# 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
20 голосов
/ 28 мая 2012

Я использовал gem 'debugger' , который является форком ruby-debug (19), который работает на 1.9.2 и 1.9.3 и легко устанавливается для рубинов rvm / rbenv. Это делает ошибку исчезнуть!

11 голосов
/ 17 августа 2011

Похоже, на данный момент это известная ошибка в ruby-debug-base. Я добавил свой комментарий к проблеме на трекере ошибок. Пожалуйста, рассмотрите возможность добавления заметок:

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

Тем временем в ruby ​​1.9 есть встроенный отладчик; это просто очень медленно. Вручную добавьте эту обязательную строку в ваш код:

require 'debug'

Кроме того, по умолчанию отладчик прерывает все исключения StandardError, поэтому сделайте это при первом запуске:

catch off
6 голосов
/ 05 февраля 2012

Если вы используете Ruby 1.9.3x, чтобы исправить это, перейдите в ruby-debug на rubyforge , загрузите и установите ruby-debug-base 0.11.26 и linecache19 0.5.13. Измените ваш Gemfile, чтобы использовать эти файлы, затем запустите

bundle update ruby-debug-base19

Отладчик должен работать.

Спасибо Джером

0 голосов
/ 16 октября 2013

Моя система - 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'» и добавивновая строка "gem 'debugger'" в 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
0 голосов
/ 07 июня 2012

Используя ruby ​​1.9.3, я смог заставить это работать, добавив гем 'ruby-debug-base19x' (обратите внимание на 'x' в конце имени) в дополнение к 'ruby-debug19'.

0 голосов
/ 17 марта 2012

Исправлено обновление до последних самоцветов отладки

...