web-dev-qa-db-fra.com

Pourquoi je ne peux pas déboguer?

Quand j'étais sur le point de déboguer un programme C++ dans VS2005, le programme ne s'est pas arrêté aux points d'arrêt.

Le VS a déclaré "Aucun symbole n'est chargé pour une trame de pile d'appels. Le code source ne peut pas être affiché".

Que puis-je faire?

17
MainID

Merci à tout le monde.

Enfin, j'ai trouvé une solution ici .

Pour activer le débogage:

1) Goto Project-> Propriétés HelloWorld

2) À gauche, développez "Propriétés de la configuration"

3) Développez "C/C++"

4) À gauche, sélectionnez "Général"

5) À droite, remplacez "Format des informations de débogage" par "Base de données de programmes pour édition et poursuite (/ ZI)".

5) À gauche, sélectionnez "Optimisation"

6) Sur la droite, remplacez "Optimisation" par "Désactivé (/ Od)"

7) À gauche, développez "Linker"

8) À gauche, sélectionnez "Débogage"

9) Sur la droite, remplacez "Générer les informations de débogage" par "Oui"

10) Cliquez sur ok

11) Définissez vos points d'arrêt

12) Reconstruisez votre application

De même, lorsque vous exécutez votre application, utilisez Ctrl + F5 pour la construire et l'exécuter, la fenêtre de la console reste ouverte suffisamment longtemps pour que vous puissiez voir votre sortie.

19
MainID

Quelques étapes à essayer:

  1. Debug-> Step Into (cela vous assurera de vous arrêter juste après avoir commencé)
  2. Debug-> Windows-> Modules
  3. Recherchez votre fichier foo.exe dans la liste.
  4. Vérifier le statut du symbole. Est-ce qu'il dit qu'il est chargé?
  5. Sinon, allez dans le chemin et assurez-vous que: a) il existe un fichier appelé foo.pdb il b) l'horodatage sur foo.pdb correspond à foo.exe (ou est vraiment proche)
4
Steve Rowe

Pour une raison quelconque, vous ne disposez pas des bons symboles (fichiers .pdb) dans le chemin des symboles. Cela pourrait être pour plusieurs raisons:

1) Votre fichier binaire a été compilé plus récemment que les fichiers .pdb. Essayez de tout recompiler.

2) Vous essayez de déboguer un fichier .dll et vous avez oublié de copier les fichiers .pdb. Copiez ces fichiers aussi.

Il est également possible que votre code ne soit pas exécuté comme vous le pensez.

3
Steve Rowe

On dirait que vous vous attachez à un processus plutôt que d’exécuter une session de débogage conventionnelle? Si vous attachez effectivement un processus, il est important de vous assurer que les fichiers binaires que vous essayez de déboguer ont été générés avec le même code source ouvert dans votre IDE.

1
jpoh

Terminez le nettoyage et la reconstruction en vous assurant que le fichier .pdb est créé?

1
annakata

Juste pour ajouter une autre possibilité non encore couverte par MainID:

Lors du débogage, j’ai en fait lancé un programme qui ferait appel aux classes que je voulais déboguer (c’est une sorte de complément). Le programme appelé est en partie écrit en C++ non géré. Lorsque j'ai coché "Activer le débogage de code non géré", l'erreur s'est produite (et par la suite le programme s'est bloqué) car le programme ne contenait aucune information de débogage.

0
mort

J'ai résolu ce problème dans WP7 en procédant comme suit:

  1. Cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions (Ctrl+W+S)
  2. Sélectionnez Reconstruire.
  3. Encore une fois, sélectionnez le projet, cliquez dessus avec le bouton droit et choisissez Déployer.
  4. Démarrer le débogage (F5)

J'espère que cela vous aidera!

0
creativemujahid

J'ai rencontré ce problème (utilisation de c # dans VS) en essayant de déboguer mes tests unitaires.

Vous pouvez ajouter le code suivant qui lancera une nouvelle instance du débogueur qui vous permettra de parcourir votre code comme d'habitude:

System.Diagnostics.Debugger.Launch();
System.Diagnostics.Debugger.Break();
0
Stephen Curial