El depurador de rubí no se detiene en los puntos de interrupción que puse en archivos diferentes a la de la ejecución comienza en Por ejemplo, considere estos dos archivos, foo.rb:.valor en un archivo diferente tiene ningún efecto
# foo.rb
class Foo
def bar
puts "baz"
end
end
y main.rb:
# main.rb
require './foo'
Foo.new.bar
que iniciar la depuración utilizando ruby -r debug .\main.rb
. Ahora, cuando intento establecer un punto de interrupción en una línea específica en otro archivo usando b ./foo.rb:4
, recibo el mensaje Establezco el punto de interrupción 1 en foo.rb: 4, pero cuando yo cont
, el programa se ejecuta hasta el final y el depurador nunca se detiene Sin embargo, si rompo una línea en main.rb, p. b ./main.rb:3
, o un método, p. b Foo.bar
, el depurador se detiene como se esperaba.
¿Por qué el depurador no se detiene en puntos de interrupción en archivos que no sean el archivo principal?
Actualización: He intentado esto con Ruby 1.9.3 en Windows 7 y OS X 10.8; no funciona en ninguno de los ambientes.
he dado cuenta de que también acaba el depurador se cierra después de que el guión ha corrido hasta el final: Me iniciar la depuración main.rb, utilice cont
, entonces Baz se imprime en la consola y estoy de regreso en la cáscara. ¿Es este el comportamiento esperado o es posible que el depurador se haya bloqueado?
¿Ha intentado establecer el punto de interrupción en el principal: 3 (después de que la requieren ha cargado), corriendo a ese punto de interrupción y luego establecer el segundo punto de interrupción? –
@AlexBrown Siguiendo su sugerencia, he superado el requerimiento con 'next', luego agregué el punto de interrupción en * foo.rb * y' cont''d - mismo resultado. – waldrumpus
Tengo el mismo problema ahora usando ruby 2.1.0. ¿Lo has resuelto? – studyro