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]]#