Ruby - Débogueur
Peu importe la facilité d'utilisation d'un langage, il contient généralement des bogues s'il fait plus de quelques lignes. Pour aider à gérer les bogues, la distribution standard de Ruby inclut un débogueur.
Afin de démarrer le débogueur Ruby, chargez la bibliothèque de débogage en utilisant l'option de ligne de commande -r debug . Le débogueur s'arrête avant la première ligne de code exécutable et demande l'entrée de commandes utilisateur.
Syntaxe d'utilisation
Voici la syntaxe d'utilisation pour utiliser le débogueur ruby -
$ ruby -r debug filename[, ...]
Commandes du débogueur Ruby
Voici une liste complète des commandes que vous pouvez utiliser lors du débogage de votre programme. Ici, il n'est pas nécessaire d'utiliser le mot-clé complete pour donner une commande, la partie donnée à l'intérieur [...] est option.
N ° Sr. | Commande et description |
---|---|
1 | b[reak] [< file| class>:]< line| method> Définit le point d'arrêt sur une position. Breakpoint est un endroit où vous souhaitez interrompre l'exécution du programme à des fins de débogage. |
2 | wat[ch] expression Définit les points de surveillance. |
3 | cat[ch] (exception|off) Définit le point de capture sur une exception. |
4 | b[reak] Affiche les points d'arrêt et les points de surveillance. |
5 | del[ete] [n] Supprime les points d'arrêt. |
6 | disp[lay] expression Affiche la valeur de l' expression . |
sept | undisp[lay] [ n] Supprime l'affichage de n |
8 | c[ont] Continue l'exécution. |
9 | s[tep] [ n] Exécute les n lignes suivantes dans les méthodes. |
dix | n[ext] [ n] Exécute les n lignes suivantes en enjambant les méthodes. |
11 | w[here] Affiche le cadre de la pile |
12 | f[rame] Synonyme de where. |
13 | l[ist][<-| n- m>] Affiche les lignes source de n à m. |
14 | up [ n] Remonte de n niveaux dans le cadre de la pile. |
15 | down [ n] Descend de n niveaux dans le cadre de la pile. |
16 | fin[ish] Termine l'exécution de la méthode actuelle. |
17 | tr[ace] [on|off] Active et désactive le mode trace. |
18 | q[uit] Quitte le débogueur. |
19 | v[ar] g[lobal] Affiche les variables globales. |
20 | v[ar] l[ocal] Affiche les variables locales. |
21 | v[ar] i[instance] object Affiche les variables d'instance de l' objet |
22 | v[ar] c[onst] object Affiche les constantes de l' objet . |
23 | m[ethod] i[instance] object Affiche les méthodes d'instance de l' objet . |
24 | m[ethod] class| module Affiche les méthodes d'instance de la classe ou du module . |
25 | th[read] l[ist] Affiche les fils. |
26 | th[read] c[ur[rent]] Affiche le fil actuel. |
27 | th[read] n Arrête le thread spécifié. |
28 | th[read] stop > Synonyme de th [read] n. |
29 | th[read] c[ur[rent]] n> Synonyme de th [read] n |
30 | th[read] resume > Reprend le thread n |
31 | p expression Évalue l' expression |
32 | h[elp] Affiche un message d'aide |
33 | everything else Évalue. |
Exemple
Considérez le fichier suivant hello.rb , qui doit être débogué -
#!/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
Voici une session interactive capturée. Les commandes données sont écrites en gras -
[[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]]#