/ / gdb: aucun symbole «tulipe» dans le contexte actuel - c ++, gdb

gdb: pas de symbole "tulipe" dans le contexte actuel - c ++, gdb

J'essaie de compiler mon programme et de le rendre exécutable, mais chaque fois que j'essaie de l’imprimer, il dit: "Aucun symbole" tulipe "dans le contexte actuel. "

Voici mon code:

#include <stdlib.h>
#include <stdio.h>

int main() {
unsigned long *daffodil = (unsigned long *) malloc(sizeof(unsigned long));
if (daffodil == (unsigned long *) NULL)
exit(EXIT_FAILURE);
*daffodil = 170;
unsigned long *tulip = daffodil;
unsigned long *carnation = (unsigned long *) malloc(sizeof(unsigned long));
if (carnation == (unsigned long *) NULL)
exit(EXIT_FAILURE);
*carnation = 995;
unsigned long *lily = tulip;
unsigned long crocus = 953;
unsigned long *zinnia = &crocus;
(void) printf("Registering daffodil: %lu.n", *daffodil);
(void) printf("Registering tulip: %lu.n", *tulip);
(void) printf("Registering carnation: %lu.n",*carnation);
(void) printf("Registering lily: %lu.n", *lily);
(void) printf("Registering crocus: %lu.n", crocus);
(void) printf("Registering zinnia: %lu.n", *zinnia);
carnation = (unsigned long *) NULL;
free(daffodil);
free(carnation);

return EXIT_SUCCESS;
}

Voici ce que je fais dans le terminal: entrer la description de l'image ici

Réponses:

2 pour la réponse № 1

Pour voir les variables locales dans GDB, vous devez interrompre l'exécution du programme dans cette fonction. Vous essayez d’imprimer la valeur une fois le programme terminé, c’est impossible.

Essayez de mettre un point d'arrêt à la ligne 10, je pense:

(gdb) br 10
(gdb) run
(gdb) print tulip

Vous pouvez également faire une pause au début de main puis avancez jusqu'à ce que la variable soit initialisée:

(gdb) br main
(gdb) run
(gdb) next
(gdb) next
(gdb) ...
(gdb) print tulip

Le point d'arrêt à main est si fréquent que gdb a une commande qui le fait automatiquement: start.

Si vous êtes particulièrement intéressé par une variable, alors vous pouvez afficher pour l’imprimer automatiquement à chaque étape:

(gdb) start
(gdb) display tulip
(gdb) next
(gdb) next
(gdb) ...