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