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