Question

Je pense que cela a peut-être été demandé plus tôt, mais je ne trouve pas celui qui réponde à mes exigences.

Je débogue (essaie de comprendre) un projet volumineux en essayant d'analyser le flux de code dans différentes suites de tests. Mais lorsque j'essaie de définir des points d'arrêt sur certains fichiers, l'erreur "Aucun fichier source nommé nom_fichier n'a été trouvé".
Donc ma question est:

  1. gdb ne peut-il accepter que les points d'arrêt des fichiers source où le flux de code entre.?
  2. Puis-je définir des points d'arrêt sur des lignes entières d'un fichier avec quelque chose comme b nom de fichier: *
  3. Un point d'arrêt dans un fichier d'en-tête sera-t-il accepté car les fichiers d'en-tête ne sont ajoutés qu'à la compilation?

Toute idée est plus que bienvenue.

Modifier
J'ai vérifié ces problèmes avec un code hello world et trouvé les mêmes résultats que ceux indiqués dans l'une des réponses. Mais mon problème dans le projet actuel reste toujours d'actualité. Je reçois toujours la même erreur même quand je peux voir la sortie modifiée de la même ligne qui n'est pas acceptée comme point d'arrêt.

Modifier 2
Je l'ai fait fonctionner mais je ne comprends pas comment et pourquoi cela fonctionne .. ??


(gdb) b /home/neeraj/BTP/trunk/include/header.h:872
No source file named /home/neeraj/BTP/trunk/include/header.h:872
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) b /home/neeraj/BTP/trunk/src/driver.cpp:2
Breakpoint 1 at 0x806c61a: file ../../../trunk/src/driver.cpp, line 2.
(gdb) b /home/neeraj/BTP/trunk/include/header.h:872
Breakpoint 2 at 0x8052fa0: file ../../../trunk/include/header.h:872, line 872.
(gdb)

Avez-vous des idées plus profondes??

Était-ce utile?

La solution

Outre les bibliothèques partagées, il faut se méfier du fait que les noms de fichiers source gdb sont relatifs au répertoire dans lequel le code a été compilé. Si vous n'avez pas compilé avec des chemins d'accès absolus, utilisez la commande dir pour ajouter le répertoire de compilation à la liste des emplacements gdb recherche le code source.

Et un indice: je me trouve beaucoup plus productif lorsque j'utilise le débogueur d'affichage de données (DDD) interface graphique à gdb .

Autres conseils

  1. Non.
  2. Non.
  3. Oui.

Assurez-vous de compiler avec l'option -g (debug). Assurez-vous que les chemins source sont correctement définis. Utilisez directory, show directory et les commandes dir pour voir / set.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top