2009-03-12 3 views
2

Est-ce que quelqu'un a déjà débogué dans Visual Studio et qu'il semble exécuter du code différent, puis le code qui est passé? Parfois, il marche même dans ce qui semble être un espace blanc dans le fichier qui est traversé mais VS exécute quelque chose de toute façon?Exécution de code VS différente de celle d'un fichier de code

Je l'ai eu plusieurs fois, une fois que quelqu'un m'a effacé quelque chose dans le répertoire Application Data sous le répertoire utilisateur. Cependant, je ne me souviens pas de ce que c'était et je me demandais si quelqu'un avait des idées.

+0

Raison 3 de la réponse marquée ci-dessous l'a fait. Pour une raison quelconque, il semblait l'utiliser/créer incorrectement. Exploser le répertoire de l'objet et boom, travaillé comme un charme. – Adron

Répondre

2

Il existe quatre raisons possibles.

Raison 1: vous n'avez pas démarré le résultat de la compilation, mais un autre fichier. Le chemin vers l'exécutable à démarrer est défini sur la page "Débogage" des propriétés du projet.

Raison 2: vous avez une optimisation sur. Dans ce cas, le compilateur enregistre seulement la ligne de code - aux informations de code compilées pour du code et pas pour d'autres. Vous verrez qu'après avoir appuyé sur «step over», vous sautez plusieurs instructions à l'avance ou que vous ne pouvez pas accéder à certaines valeurs de variables. Désactivez l'optimisation ou passez du débogage interactif à la journalisation. Raison 3: la base de données du programme (le fichier .pdb stockant les liaisons de lignes de code au code compilé) n'est pas synchronisée avec le fichier compilé. Le projet "Reconstruire" aide généralement. Raison 4: la base de données du programme (voir la raison 3) dans le dossier où se trouve l'exécutable est obsolète car VS place la base de données du programme ailleurs sur chaque compilation). Le chemin où placer le fichier .pdb est défini dans les propriétés de l'éditeur de liens du projet.

1

Si votre code est optimisé (propriétés du projet, construction, "optimiser le code"), le code en cours d'exécution ne correspondra pas nécessairement au code de l'EDI. Cela est généralement provoqué en essayant de déboguer une version de version. Cependant, il y a certains cas où ce n'est pas le cas.

1

Attachez-vous le débogueur à votre programme en cours d'exécution? Si c'est le cas, il est possible que vous ayez modifié le fichier source, mais que vous ayez oublié de compiler le code. Je vais le faire de temps en temps, même si c'est assez facile à repérer.

Questions connexes