2011-11-12 15 views
5

Esta es una fuente de frustración de larga data, pero tal vez hay algo que me falta. Si estoy en medio de la depuración y quiero salir del depurador y regresar a IRB o la consola de Rails, "salir" no funcionará, ya que saldrá de IRB. "finalizar" también parece tener el mismo efecto que continuar. El uso de "eliminar" para eliminar los puntos de interrupción y luego intentar "continuar" o "finalizar" no funciona.¿Cómo salgo del depurador sin salir de mi sesión IRB?

¿Alguna idea?

Respuesta

2

Este SO question tiene algunas buenas sugerencias. Trata específicamente con la depuración dentro de los bucles. Una gran solución es establecer el punto de ruptura fuera del bucle, luego desde irb configurarlo dentro del bucle y borrarlo manualmente cuando lo desee.

Básicamente todo se reduce a pensar un poco en dónde establece sus puntos de interrupción.

Aparte de eso, no parece haber nada más que pueda hacer.

2

Al menos en byebug, usted puede hacer esto:

eval return 

que tiene el efecto neto de la evaluación de una instrucción de retorno de la función actual. Eso funciona a veces, dependiendo de cómo se ve la pila de llamadas.

Ahora bien, aunque esto no elimina el punto de interrupción actual ... si solo desea recuperar el control, esto lo hará en la mayoría de los casos, dependiendo de cómo esté estructurado su código.

También es útil para hacer esto al crear una entrada de depuración en el código:

byebug unless $continue 

Así que si todo lo demás falla en una sesión de depuración, siempre se puede ejecutar

$continue = true 
c 

Ahora bien, este abre un conjunto completo de posibilidades.

Cuestiones relacionadas