2010-06-29 6 views
9

Occasionnellement lors du débogage, le débogueur saute vers l'avant de façon aléatoire. Parfois, je pénètre dans une fonction à l'intérieur d'une autre fonction et au lieu d'aller à la ligne suivante, elle passe à un endroit apparemment aléatoire dans le futur. parfois à une ligne à mi-chemin à travers une autre fonction. Cependant, il semble toujours respecter les points de rupture, c'est-à-dire que si un point de rupture est défini dans le futur, il ne le dépassera jamais. Je cours 64 bits Win 7 et visual studio 2010 ultime. Je n'utilise pas de threads. Cela ne m'est jamais arrivé dans le studio visuel 2008. Comment puis-je résoudre ce problème?Débogage de débogueur Visual Studio 2010

+0

quelle langue (langage C++ natif ou langage .NET)? Êtes-vous sûr que la fonction dans laquelle vous intervenez n'est pas compilée avec des optimisations (ce qui peut définitivement induire en erreur un débogueur). –

+0

J'utilise vb.net. La configuration de la solution est définie sur 'Debug' Plate-forme 'Any CPU' – Michael

+0

Utilisation de threads? Important de le mentionner. –

Répondre

4

Je rencontre des problèmes similaires en déboguant un programme C# avec Visual Studio 2010 sur une machine XP. Le débogueur saute aléatoirement à une autre ligne ou au prochain point de rupture.

Il semble que Microsoft a publié un correctif pour cela dans le SP1.

+2

Je viens de vérifier le lien Microsoft ci-dessus pour une mise à jour. Selon le post du 12/08/2010, un correctif pour cela est dans la version bêta du service pack VS. Alléluia! Maintenant, j'ai juste besoin d'attendre que le SP soit définitif parce que j'ai trop peur d'installer le code bêta. – user171197

+0

Avait le même problème. Installé la version de SP1, le problème a été résolu. Merci de l'avoir posté! –

+1

Correction: C'est * a été réparé. :( –

3

Etes-vous sûr que l'assembly que vos appels de code ont des symboles de débogage? Vous faites peut-être référence à une DLL compilée en mode de publication.

5

Avez-vous des optimisations activées? Si le programme est hautement optimisé, l'ordre d'exécution peut être supprimé, et les choses peuvent être étendues ou réarrangées de manières qui ne sont pas toujours claires.

3

Cela peut se produire lorsque le débogueur s'exécute sur des fichiers pdb qui ne correspondent pas au code source que vous consultez. Assurez-vous que la corbeille (ou d'où vous venez) est à jour et a été créée à partir du même code source que celui que vous utilisez dans le débogueur.

0

Cliquez sur Reconstruire la solution.

+0

ne fonctionne pas, .. – toto

3

Utilisez-vous des threads ou des arrière-plan? Lors du débogage, je crois que tous les threads sont en pause, donc il pourrait basculer entre eux. Sinon, vous pouvez avoir des informations de débogage obsolètes, Supprimer vos répertoires bin et obj et faire une construction propre.

3

Cela peut également se produire lorsque la configuration de votre solution de débogage est à jour, mais que vous essayez de déboguer le programme dans la configuration Release (si ce n'est pas également à jour) ... ou vice versa.

Vous pouvez basculer entre l'exécution dans la configuration de débogage ou de relâchement à l'aide de la liste déroulante à côté de la flèche verte «lecture» en haut de l'écran.

+0

Il est dans VB.NET, la liste déroulante Configuration de la solution n'apparaît pas par défaut Personnalisez la barre d'outils pour l'inclure. –

1

J'ai eu un problème similaire dans Visual C++ 2008 sur Windows 7 32 bits récemment. Plusieurs minutes avant le premier problème est apparu, une fenêtre de dialogue système "VC.exe a rencontré un problème et doit quitter" a été affiché mais la fenêtre Visual C++ a semblé survivre. Après la première apparition du problème, j'ai essayé plusieurs façons de le remettre au travail, comme la reconstruction de la solution ou le redémarrage de Visual Studio. Cependant, il a continué à se comporter étrange: Il n'a pas réussi à lier avec un fichier d'objet que je n'avais pas touché depuis des semaines, affiché "Le point d'arrêt ne sera pas actuellement touché. Le code source est différent de la version originale. " etc.

Rien n'a aidé jusqu'à ce que j'ai redémarré l'ordinateur et finalement reconstruit la solution (deux fois, en fait).