2012-07-25 25 views
9

En el siguiente código de Ruby:ruby ​​debugger paso en un bloque directamente?

#! /usr/bin/env ruby 

require 'debugger' 

def hello 
    puts "hello" 
    if block_given? 
    yield 
    end 
end 

def main 
    debugger 
    puts "test begin..." 
    hello do # <= if you are here 
    puts "here!" #<= how to get here without setting bp here or step into hello? 
    end 
end 

main 

Es muy común durante la depuración, no me importa acerca de la implementación de la función que da al bloque, sólo quiero entrar en el bloque de forma directa, sin manualmente estableciendo un punto de quiebre allí.

¿Existe algún soporte para este tipo de "paso en bloque" en ruby-debug19 o depurador?

Respuesta

12

¿Ha intentado utilizar el comando "c", para "continue"? Opcionalmente toma un número de línea, por lo tanto, según el ejemplo de código, pruebe:

c 16 
+0

Esto es lo más parecido a un "paso al bloque actual" que esperaba, ¡gracias! –

+0

¿Cómo ayuda eso? No 'c' solo causa que se ejecute hasta el final? – Leopd

+0

'c 16' se ejecutará hasta que llegue a la línea 16. Según la documentación:' La especificación de línea de argumento opcional le permite especificar un número de línea para establecer un punto de interrupción de una sola vez que se elimina cuando se alcanza ese punto de interrupción. –

Cuestiones relacionadas