Ruby - Depurador
No importa lo fácil que sea usar un idioma, generalmente contiene algunos errores si tiene más de unas pocas líneas. Para ayudar a lidiar con errores, la distribución estándar de Ruby incluye un depurador.
Para iniciar el depurador de Ruby, cargue la biblioteca de depuración usando la opción de línea de comandos -r debug . El depurador se detiene antes de la primera línea de código ejecutable y solicita la entrada de comandos de usuario.
Sintaxis de uso
Aquí está la sintaxis de uso para usar el depurador ruby:
$ ruby -r debug filename[, ...]
Comandos del depurador de Ruby
Aquí hay una lista completa de comandos, que puede usar mientras depura su programa. Aquí, no es necesario usar la palabra clave completa para dar un comando, la parte dada dentro [...] es la opción.
No Señor. | Comando y descripción |
---|---|
1 | b[reak] [< file| class>:]< line| method> Establece el punto de interrupción en alguna posición. El punto de interrupción es un lugar donde desea pausar la ejecución del programa con fines de depuración. |
2 | wat[ch] expression Establece puntos de observación. |
3 | cat[ch] (exception|off) Establece un punto de captura en una excepción. |
4 | b[reak] Muestra puntos de interrupción y puntos de observación. |
5 | del[ete] [n] Elimina puntos de interrupción. |
6 | disp[lay] expression Muestra el valor de la expresión . |
7 | undisp[lay] [ n] Elimina la visualización de n |
8 | c[ont] Continúa la ejecución. |
9 | s[tep] [ n] Ejecuta las siguientes n líneas entrando en métodos. |
10 | n[ext] [ n] Ejecuta las siguientes n líneas pasando por alto métodos. |
11 | w[here] Muestra el marco de la pila |
12 | f[rame] Sinónimo de dónde. |
13 | l[ist][<-| n- m>] Muestra las líneas de origen de n a m. |
14 | up [ n] Sube n niveles en el marco de la pila. |
15 | down [ n] Baja n niveles en el marco de la pila. |
dieciséis | fin[ish] Finaliza la ejecución del método actual. |
17 | tr[ace] [on|off] Activa y desactiva el modo de seguimiento. |
18 | q[uit] Sale del depurador. |
19 | v[ar] g[lobal] Muestra variables globales. |
20 | v[ar] l[ocal] Muestra variables locales. |
21 | v[ar] i[instance] object Muestra variables de instancia del objeto |
22 | v[ar] c[onst] object Muestra constantes de objeto . |
23 | m[ethod] i[instance] object Muestra los métodos de instancia del objeto . |
24 | m[ethod] class| module Muestra los métodos de instancia de la clase o módulo . |
25 | th[read] l[ist] Muestra hilos. |
26 | th[read] c[ur[rent]] Muestra el hilo actual. |
27 | th[read] n Detiene el hilo especificado. |
28 | th[read] stop > Sinónimo de th [read] n. |
29 | th[read] c[ur[rent]] n> Sinónimo de th [read] n |
30 | th[read] resume > Reanuda el hilo n |
31 | p expression Evalúa la expresión |
32 | h[elp] Muestra mensaje de ayuda |
33 | everything else Evalúa. |
Ejemplo
Considere el siguiente archivo hello.rb , que debe depurarse:
#!/usr/bin/env ruby
class Hello
def initialize( hello )
@hello = hello
end
def hello
@hello
end
end
salute = Hello.new( "Hello, Mac!" )
puts salute.hello
Aquí se captura una sesión interactiva. Los comandos dados están escritos en negrita:
[[email protected]]# ruby -r debug hello.rb
Debug.rb
Emacs support available.
hello.rb:3:class Hello
(rdb:1) v l
salute => nil
(rdb:1) b 10
Set breakpoint 1 at hello.rb:10
(rdb:1) c
Hello, Mac!
[[email protected]]#