web-dev-qa-db-fra.com

Puis-je utiliser gdb pour sauter une ligne sans avoir à taper des numéros de ligne?

Je sais que je peux utiliser jump pour définir le compteur de programme sur une ligne spécifique et donc je peux sauter une ou plusieurs lignes (ou exécuter à nouveau certaines lignes). Puis-je facilement sauter la ligne suivante sans avoir à saisir de numéro de ligne?

Ce serait très pratique pour "commenter" quelque chose au moment de l'exécution.

58
Ortwin Gentz
jump +1

saute à la ligne suivante, c'est-à-dire saute la ligne actuelle. Vous pouvez également le combiner avec tbreak +1 pour définir un point d'arrêt temporaire sur la cible de saut.

Voir http://sourceware.org/gdb/current/onlinedocs/gdb/Specify-Location.html pour plus de façons d'exprimer des emplacements avec gdb.

Notez que sans point d'arrêt gdb est susceptible de continuer l'exécution normalement au lieu de sauter. Donc, si le saut ne semble pas fonctionner, assurez-vous de définir un point d'arrêt à la destination.

69
laalto

J'ai ce qui suit dans mon .gdbinit fichier de configuration:

define skip
    tbreak +1
    jump +1
end

Il suffit donc de taper skip dans gdb pour sauter une ligne.

18
gospes

Pour ignorer un nombre quelconque de lignes pendant l'exécution:

[Current Position -- in GDB] Line N
.......... // Lines To Skip
..........
..........
[Line To Execute - After Jumping] Line M

Mettez un point d'arrêt sur la ligne M:

gdb$b M

Aller à la ligne M:

gdb$jump M
5
Sandeep Singh