¿Qué usan ustedes para depurar en ruby 1.9? rdebug no parece ser compatible ... ¿hay algo ahí fuera?
Respuestas:
Nota: esta respuesta era correcta, pero ahora está desactualizada. Vea la respuesta correcta a continuación. TL; DR: use 'depurador' ahora.
ruby-debug ahora está disponible con Ruby 1.9.x. Ver http://www.github.com/mark-moseley
Para instalar (usando gem en la instalación 1.9 Ruby):
gem install ruby-debug19
(quizás con el 'sudo' necesario delante).
ruby-debug19
ya no se mantiene. Todas las demás respuestas están desactualizadas.
Pero hay una alternativa:
debugger
¡al rescate!
Pon esto en tu Gemfile
:
gem 'debugger', group: [:development, :test]
Simplemente funciona. - Y está incluido en el Gemfile de rieles desde 3.2 ruby-debug19
. Algo para reemplazar . Tiene exactamente la misma funcionalidad y se mantiene activamente.
group :development do ... end
ni similar), porque ya contiene un grupo.
ACTUALIZACIÓN PARA RUBY 2.0+ y SIGUIENTES
byebug es el depurador recomendado actualmente para Ruby 2.0+
Este problema se ha documentado aquí , y cldwalker, el autor del depurador, señala que el depurador se ajustará a Ruby 1.9.2 y 1.9.3.
ACTUALIZACIÓN 2
Es cierto que ruby-debug no se mantiene activamente incluso si no puedo encontrar ningún lugar que ya no se mantenga.
Puede usar la nueva gema depuradora si necesita ayuda para comenzar con la nueva gema que puede ver en los rieles de Ryan Bates .
En su Gemfile ponga:
gem 'debugger', group: [:development, :test]
Luego puede agregar un punto de interrupción en cualquier parte de su código usando la debugger
palabra clave.
TODAVÍA PUEDES USAR
linecache19 y ruby-debug-base19 con:
bash <<(curl -L https://raw.github.com/gist/1333785 )
ANTIGUAS RESPUESTAS
Solo un complemento sobre esto con rvm, ruby 1.9.1-p378. La historia real es que incluso si ruby-debug está listo para 1.9.x, linecache-0.43 no lo está. La solución es instalar:
gem install ruby-debug19
Esto me resuelve el problema.
ACTUALIZACIÓN ANTIGUA
Si tiene problemas con la depuración de Ruby 1.9.2 y Rails 3:
gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"
En su Gemfile y haciendo un
bundle install
Te convertirá en un depurador feliz de nuevo.
Algunas cosas que podrías probar
1) ejecútalo con el depurador normal de ruby -rdebug [1] algo lento
2) ejecutarlo con gema desenrolladora [un poco apesta, muy lento]
3) use muchas declaraciones impresas rápidamente, con una menor introspección posible
4) desplácese a un indicador de irb y ejecute algún código desde allí.
podría enumerar el código creando su propio "indicador de irb" que enumera el código alrededor de sí mismo [use el llamador para descubrir dónde está] y luego vaya al indicador de irb normal.
5) ¿tal vez jruby en el modo de compatibilidad 1.9 tiene un depurador?
Vea mi respuesta aquí: Ruby-debug no funciona
Se trata de hacer que la depuración de Ruby funcione con la siguiente configuración
Usando rvm, en el directorio de trabajo de mi proyecto tengo un .rvmrc que indica:
rvm use ruby-1.9.3-p0@mygemset
¡Espero que esto ayude!
- Freddy
Usé lo siguiente y funciona muy bien para mí:
gem 'depurador', grupo: [: desarrollo,: prueba]
ruby 1.9.3p194 (2012-04-20 revisión 35410) [x86_64-linux] rieles 3.2.8
Netbeans es un buen IDE para RoR. Buen depurador también.
La versión de ruby 1.9.1-p243 está disponible y ruby-debug-ide compitable también funciona correctamente. Instale ruby-debug-ide usando el siguiente comando:
gema instalar ruby-debug-ide
Esto instalará las gemas ruby-debug-base19 y ruby-debug-ide. Pero antes de esto, asegúrese de instalar mingw correctamente siguiendo los documentos del kit de desarrollo disponibles en RubyForge .
Las últimas funciones están disponibles en ruby-debug-ide19 gem.
Hay muchas opciones, según sus necesidades.
Utilizo movimientos de palanca porque puedo "mirar hacia atrás" en lo que sucedió dentro del comando anterior al volver a ejecutarlos en modo de depuración directamente desde el lugar.
nadie usa: ruby -rdebug script.rb
entonces puede usar: b script.rb: ## (donde ## es el número de línea de un comando ruby válido) de lo contrario, tal vez se encuentre en medio de rubygems o uno de los fragmentos de código requeridos.
Luego, simplemente puede establecer el siguiente punto de interrupción como b: ##
ruby-debug19
está desactualizado ahora.