7
votes

Visual Studio 2008 Crazy Debugger Sauteur

Je développe une application Web C # 3.5 ASP.NET MVC ASP.NET, identique à la journée de tous les jours. Ne faites rien d'intelligent, des méthodes standard sur les classes appellent d'autres méthodes.

Je construis mon projet, enfoncez une URL en chrome et obtenez la réponse que j'attends. Je joins le débogueur à w3wp.exe , définissez un point d'arrêt et F5 en chrome. Le débogueur s'arrête au point d'arrêt comme on m'attend que.

I frappe F11 pour passer à travers le code, et il passera à la ligne suivante / partie, faites-le quelques fois et sautera au hasard à une ligne arbitraire dans le chemin d'exécution!

La ligne qu'elle passe à une ligne qui aurait été exécutée, elle ne saute aucune ligne vieille, elle décide simplement de manquer tout un tas de lignes entre.

Je n'ai jamais vu cela auparavant, comment puis-je déboguer ce qui se passe?

pendant un moment, je pensais peut-être que Chrome fait deux demandes et le débogueur Isn 't vraiment sauter, son juste échange entre les threads de la requête, ce qui semble avoir l'air de sauter, mais ce n'est pas ça! Si je fixe un point d'arrêt sur chaque ligne, je peux l'empêcher de l'empêcher partiellement, mais prenez les éléments suivants: xxx

Le type de comportement que je vois (avec un point d'arrêt sur chaque ligne ci-dessus) est de 1,2,3,4,5,6,7 (c'est-à-dire qu'elle n'apparaîtra pas dans autremethod () ).

Autre comportement que je vois est 1,2,3 Et puis c'est tout, de retour à l'endroit où l'appelé méthode () ou même plus loin.


0 commentaires

6 Réponses :


0
votes

On dirait que vous essayez de passer à travers un binaire qui a été optimisé. L'optimiseur peut faire beaucoup de choses qui rendent difficile de déboguer, notamment:

  • Déclarations de réorganisation
  • Fonctions d'inlinage

0 commentaires

2
votes

Je ne sais pas si cela aidera. J'ai eu des problèmes auparavant où le code compilé dans une assemblée associée ne correspond pas à ce que le débogueur pense que j'ai. La façon dont j'ai toujours résolu, c'était trop à l'arrêt de la franchise, puis redémarrez et rechargez le projet, puis faites une reconstruction complète de la solution. Changez ensuite le mode de construction de Débogou-> Libération ou publication-> Débogou, et faites une dernière reconstruction. Honnêtement, j'ai jamais jamais compris ce qui le cause. N'arrive que à l'occasion.


1 commentaires

faire tout cela et que les suggestions de Jeff semble l'avoir réparée, merci



6
votes

Avez-vous essayé de nettoyer votre solution?
- (les dossiers bin et obj dans votre dossier de projet)

Supprimer des fichiers à partir du dossier temporaire des fichiers ASP.NET?

  • (généralement C: \ Windows \ Microsoft.net \ Framework \ v2.0.50727 \ Fichiers ASP.NET temporaires)
  • Vous aurez probablement besoin d'exécuter "IISRESET / STOP" à l'invite de commande en premier, puis réactivez avec IISRESET / START

1 commentaires

faire tout cela et les suggestions d'atome semble l'avoir réparé, merci



0
votes

J'ai vu quelque chose de similaire dans 2.0 lorsque je ne m'assurerai pas que mon cache de navigateur est clair.


0 commentaires

0
votes

Allumez le démontage et voyez si votre étape ait plus de sens. Si vous êtes certain que vous ne sautez pas entre les threads, le compilateur a probablement décidé que certains de votre code ne sont pas suffisamment importants pour entrer (c'est-à-dire que rien).


0 commentaires

3
votes

Hey, vous avez probablement trouvé une solution de contournement à ce sujet d'ici, mais beaucoup de gens (j'étais un) continuent de lutter contre. C'est un problème vs 2008 et ce correctif doit être appliqué:

http://support.microsoft.com/ ? SCID = KB% 3ben-US% 3B957912 & X = 9 & Y = 14


0 commentaires