Ruby - Debugger

Não importa o quão fácil seja uma linguagem de usar, ela geralmente contém alguns bugs se tiver mais do que algumas linhas. Para ajudar a lidar com os bugs, a distribuição padrão do Ruby inclui um depurador.

Para iniciar o depurador Ruby, carregue a biblioteca de depuração usando a opção de linha de comando -r debug . O depurador para antes da primeira linha do código executável e pede a entrada de comandos do usuário.

Sintaxe de uso

Aqui está a sintaxe de uso para usar o depurador Ruby -

$ ruby -r debug filename[, ...]

Comandos do depurador Ruby

Aqui está uma lista completa de comandos, que você pode usar enquanto depura seu programa. Aqui, não é necessário usar a palavra-chave completa para dar um comando, parte dada dentro [...] é a opção.

Sr. Não. Comando e Descrição
1

b[reak] [< file| class>:]< line| method>

Define o ponto de interrupção para alguma posição. Breakpoint é um lugar onde você deseja pausar a execução do programa para fins de depuração.

2

wat[ch] expression

Define pontos de controle.

3

cat[ch] (exception|off)

Define o ponto de interesse para uma exceção.

4

b[reak]

Exibe pontos de interrupção e pontos de controle.

5

del[ete] [n]

Exclui pontos de interrupção.

6

disp[lay] expression

Exibe o valor da expressão .

7

undisp[lay] [ n]

Remove a exibição de n

8

c[ont]

Continua a execução.

9

s[tep] [ n]

Executa as próximas n linhas entrando em métodos.

10

n[ext] [ n]

Executa as próximas n linhas passando por métodos.

11

w[here]

Exibe o frame da pilha

12

f[rame]

Sinônimo de onde.

13

l[ist][<-| n- m>]

Exibe as linhas de origem de n a m.

14

up [ n]

Move n níveis para cima no quadro de pilha.

15

down [ n]

Move para baixo n níveis no quadro de pilha.

16

fin[ish]

Conclui a execução do método atual.

17

tr[ace] [on|off]

Ativa e desativa o modo de rastreamento.

18

q[uit]

Sai do depurador.

19

v[ar] g[lobal]

Exibe variáveis ​​globais.

20

v[ar] l[ocal]

Exibe variáveis ​​locais.

21

v[ar] i[instance] object

Exibe variáveis ​​de instância do objeto

22

v[ar] c[onst] object

Exibe constantes do objeto .

23

m[ethod] i[instance] object

Exibe métodos de instância do objeto .

24

m[ethod] class| module

Exibe métodos de instância da classe ou módulo .

25

th[read] l[ist]

Exibe tópicos.

26

th[read] c[ur[rent]]

Exibe o tópico atual.

27

th[read] n

Pára o tópico especificado.

28

th[read] stop >

Sinônimo de th [ler] n.

29

th[read] c[ur[rent]] n>

Sinônimo de th [ler] n

30

th[read] resume >

Retoma o tópico n

31

p expression

Avalia a expressão

32

h[elp]

Exibe mensagem de ajuda

33

everything else

Avalia.

Exemplo

Considere o seguinte arquivo hello.rb , que precisa ser depurado -

#!/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

Aqui está uma sessão interativa capturada. Os comandos fornecidos são escritos em negrito -

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