2 votes

GDB : comment définir un point d'arrêt dans les fichiers liés ?

Disons que j'ai mon fichier principal : main.c, lié à file1.c et file2.c où file1 et file2 incluent leurs fichiers d'en-tête : file1.h, file2.h.

Je les ai compilés ensemble comme ça :

gcc main.c file1.c file2.c

qui crée le ./a.out l'exécutable à exécuter.

Dans GDB, comment puis-je définir un point d'arrêt dans mon fichier main.c ? J'ai essayé

b main.c

ce qui m'a donné ce résultat :

Make break-point pending on future shared library load? yes or no

à laquelle j'ai répondu yes mais il ne fixe jamais de point d'arrêt, même après avoir dit b 232 : le numéro de ligne, j'ai même essayé b main 232 y b main.c 232 mais aucun d'entre eux ne fonctionne non plus

4voto

Marco Bonelli Points 4003

Ce que vous voulez, c'est ce qui suit (voir Doc GDB ) :

break main.c:232

Et n'oubliez pas de compiler avec -g sinon l'information sur le numéro de ligne ne sera pas présente dans le programme généré.

4voto

Alter Mann Points 10564

Comme alternative à la réponse de @MarcoBonelli vous pouvez utiliser

break main.c:main

ou puisqu'il ne peut y avoir plus d'un main dans un projet, vous pouvez simplement utiliser

break main

Cela présente l'avantage de ne pas avoir à rechercher le numéro de ligne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X