J'aime faire en sorte que GDB définisse un point de rupture lorsqu'une variable est égale à une valeur que j'ai définie, j'ai essayé cet exemple:
#include <stdio.h>
main()
{
int i = 0;
for(i=0;i<7;++i)
printf("%d\n", i);
return 0;
}
Sortie de GDB:
(gdb) break if ((int)i == 5)
No default breakpoint address now.
(gdb) run
Starting program: /home/SIFE/run
0
1
2
3
4
5
6
Program exited normally.
(gdb)
Comme vous le voyez, GDB n'a fait aucun point de rupture, est-ce possible avec GDB?
(gdb) watch i No symbol "i" in current context.
i
existe. Essayezbreak main
,run
,c
,s
(pas pour vous assurer que vous avez passé la déclaration), puis les commandes sur la réponse. Assurez-vous de compiler votre programme avec l'-g
indicateur. (ie avec des informations de débogage)Tout d'abord, vous devez compiler votre code avec les indicateurs appropriés, permettant le débogage dans le code.
puis exécutez simplement votre code avec votre débogueur préféré
montre-moi le code.
break sur les lignes 5 et regarde si i == 5.
vérification des points d'arrêt
exécuter le programme
la source
Il existe des points de surveillance matériels et logiciels. Ils servent à lire et à écrire une variable. Vous devez consulter un tutoriel:
http://www.unknownroad.com/rtfm/gdbtut/gdbwatch.html
Pour définir un point de surveillance, vous devez d'abord décomposer le code dans un endroit où le varianle i est présent dans l'environnement, et définir le point de surveillance.
watch
La commande est utilisée pour définir un point de surveillance pour l'écriture, pendant larwatch
lecture etawatch
pour la lecture / l'écriture.la source