2010-10-11 6 views
6

alt textde débogage de Visual Studio

Lorsqu'un exeption dialogue apparaît, qui a fait la ligne/déclenche le problème, la ligne par la flèche verte insinué ou la ligne ci-dessus?

Existe-t-il une référence officielle pour ce boîtier de coin?

MISE À JOUR

Jusqu'à présent, il semble encore que les deux sont tout le monde possible.Can arriver à une conclusion finale?

+0

Quelqu'un peut-il me donner un upvote afin que je puisse coller l'image dedans. – justnobody

+0

C'est une question difficile à répondre en général. Ça dépend. Le problème immédiat est pointé par la ligne avec la flèche verte, mais il a probablement été causé par le code qui s'exécutait auparavant. Je suppose que ce n'est pas la réponse que vous cherchez. – Rohith

+0

Je ne veux pas dire qui ** a causé **, mais qui ** a déclenché **, pour être exact. – justnobody

Répondre

0

Voici les liens de référence Microsoft pour Visual Studio Debugging UI

Debugging UI Reference VS.Net 2008

Using the Debugger : a Roadmap

Ce Link from the msdn Magazine dit que le cadre de pile en cours est indiquée par une flèche de queue verte courbe (tandis que l'empilement actif le cadre retient la flèche jaune).

+0

Il semble n'y avoir aucune remarque à ce sujet. – justnobody

+0

Le cadre actuel et le cadre actif ne sont-ils pas identiques? – justnobody

+0

Cela peut être différent. Voir le blogpost d'un ancien MVP http://www.danielmoth.com/Blog/Active-And-Current-Stack-Frame-And-Thread.aspx. Il a détaillé les empilements et les threads. –

0

Je ne sais pas s'il existe une déclaration documentée officielle à ce sujet, mais pour moi, il semble pointer vers la ligne qui a déclenché l'exception. Mais je ne serais pas trop surpris si dans certaines situations plus complexes (ou si une version de release est déboguée) que le débogueur pourrait être un peu confus et pointer vers l'emplacement incorrect. J'imagine que si cela se produit pour une construction de débogage, MS le considérerait comme un bug, et pourrait même le réparer s'il est rapporté dans un scénario reproductible.

+0

Mais IIRC, la flèche verte pointe vers l'instruction suivante ** à exécuter ** dans les autres cas, ce qui n'est pas déjà fait. – justnobody

+1

Mais si une instruction a provoqué une exception, elle n'a pas été exécutée avec succès. Cependant, vous pourriez certainement avoir raison d'oublier certaines exceptions qui sont traitées spécialement pour une raison quelconque. De plus, il y a des paramètres qui affectent * quand * le débogueur vous présentera une exception - soit quand il est lancé pour la première fois ou seulement s'il n'est pas pris après avoir exécuté tous les gestionnaires possibles. Bien qu'il devrait encore présenter ceux-ci sur la même ligne. –

+0

Oublié de mentionner que «FlashPlayer.exe» est le produit d'adobe, pas construit à partir du projet qui contient la source ci-dessus. Avez-vous une autre idée en tête? – justnobody

1

Si vous allez à la fenêtre d'assemblage, vous verrez exactement à quelle instruction de machine le code est. Si c'est juste après une instruction d'appel, l'exception s'est produite à l'intérieur de cet appel.