ruby-on-rails - debug - logger ruby on rails
Rails con ruby-depurador throw ''Símbolo no encontrado:_ruby_current_thread(LoadError)'' (7)
Tengo Ruby-head estándar y Rails 3.1rc4. Instalé ruby-debug con las siguientes instrucciones de http://dirk.net/2010/04/17/ruby-debug-with-ruby-19x-and-rails-3-on-rvm/
Pero cuando ejecuto rails s --debugger
arrojará este extraño error
/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''
¿Alguna idea? Gracias, David
Si está ejecutando Ruby 1.9.3x, para solucionarlo, vaya a ruby-debug en rubyforge , descargue e instale ruby-debug-base 0.11.26 y linecache19 0.5.13. Modifique su Gemfile para usar estos archivos, luego ejecútelo
bundle update ruby-debug-base19
Debugger debería funcionar ahora.
Gracias Jerome
Parece que este es un error conocido en ruby-debug-base, por el momento. He agregado mi comentario al problema en el rastreador de errores. Plase considera agregar tus notas también:
http://rubyforge.org/tracker/index.php?func=detail&aid=29222&group_id=8883&atid=34290
Mientras tanto, ruby 1.9 tiene un depurador incorporado; es solo muy lento Agregue manualmente esta línea requerida a su código:
require ''debug''
Además, el depurador se rompe en todas las excepciones StandardError por defecto, así que hazlo cuando se inicie por primera vez:
catch off
Esto se arregló actualizando a las últimas gemas de todas las depuraciones
Usé el ''depurador'' de gem que es un fork de ruby-debug (19) que funciona en 1.9.2 y 1.9.3 y se instala fácilmente para rvm / rbenv rubies. ¡Hace que el error desaparezca!
Usando ruby 1.9.3, pude hacer que esto funcionara al agregar la gema ''ruby-debug-base19x'' (tenga en cuenta la ''x'' al final del nombre) además de ''ruby-debug19''.
ACTUALIZAR:
Parece que solo necesitas poner esto en tu gemfile:
gema "depurador"
y ahora funciona.
El viejo artículo sigue
=================================
Jerome tiene razón, pero le faltan detalles. Aquí está el golpe por golpe, tomado de este https://gist.github.com/1331533 , en particular gracias a la publicación de andrewroth. Lo he probado a partir del momento de esta publicación. Se espera que los cambios se implementen en algún lugar pronto.
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://.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
Mi sistema es rvm 1.18.10 y ruby 1.9.3p392 en Mac OSX 10.8.5. Primero instalé gem ''ruby-debug19'', pero por el bien conocido motivo, el depurador no funcionó.
Entonces corrí
local$ gem install ''debugger''
como lo sugieren muchos otros mensajes. La gema se instaló con éxito con los siguientes resultados:
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
Entonces corrí
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
......
Resolví este error comentando la línea "gem ''ruby-debug19''" y agregando una nueva línea "gem ''depurador''" en el Gemfile, y luego ejecuté
local$ bundle update
Después de eso, todo funcionó bien.
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