2011-12-12 14 views
8

Tengo una nueva depuración en R usando traceback() y option(error=recover) y debug(function) para intentar encontrar el motivo de un error que tengo en un paquete R.cómo omitir un bucle al depurar el código R

Estoy depurando una función con un gran bucle y quiero 'salir' del bucle en el bloque siguiente. ¿Cómo puedo hacer eso? Sé que puedes poner puntos de corte, pero no sé dónde está el bucle ni cuál es el próximo paso. Estoy en un entorno de texto único, por lo que la ayuda gráfica del paquete de depuración probablemente no ayude.

En resumen, ¿cómo salir de un bucle cuando se depura y cómo entrar en una función para depuración cuando ya está depurando?

Probablemente esto ya ha sido respondido y me lo he perdido. He visto varias preguntas de depuración de SO R pero ninguna respondiendo esta parte de la que tengo conocimiento.

Respuesta

9

Estoy bastante seguro de que el sistema de ayuda de R funciona incluso si no está usando una GUI. Intente escribir ?debug y vea qué sucede. Usted debe ser informado de que escribir c o cont se

continuar hasta el final del actual contexto: por ejemplo, hasta el final del ciclo si está dentro de un ciclo o hasta el final de la función.

+1

'browser()' también puede ser útil para que pueda ver cuáles son los valores de sus variables en cualquier punto del ciclo, consulte '? Browser'. – Gregor

+3

Me acabo de dar cuenta de que 'c' va al final del contexto actual cuando presioné' c' para ir al final del script y solo llegué al final del ciclo. Recibí un curso de entrega "c o cont" (Continuar la ejecución sin pasos individuales) "y esto me estaba engañando. Gracias –

Cuestiones relacionadas