Mise à jour du 22 février 2013 : L'entrée Microsoft Connect comporte une note d'Alok Shriram (Program Manager, Base Class Libraries, .NET Framework) indiquant que le problème devrait maintenant être résolu. L'entrée Connect est marquée comme Résolu (Fixé) :
Ce problème devrait maintenant être résolu. Nous avons publié une mise à jour des sources de référence. Si votre problème n'est toujours pas résolu, veuillez nous le faire savoir.
Un an et demi.
Liens bonus
Question originale
Comment activer le suivi des sources du framework .NET dans Visual Studio 2010 ?
Note : Cette question est une pièce d'un ensemble plus vaste :
- .NET 2.0 WinForm : Prise en charge des changements de DPI et de police par défaut
- Les contrôles WinForms ne sont pas mis à l'échelle lors de l'utilisation de ScaleControl
- VS2010 : Comment activer "Enable .NET Framework source stepping" ?
- Visual Studio 2010 Professional : Comment accéder à la fenêtre Modules ?
- Visual Studio 2010 : Properties.Settings cassé après avoir réorienté le projet vers .NET Framework 3.5
Visual Studio 2010 est doté d'une nouvelle fonctionnalité :
- Outils, Options, Débogage, Général, Activer le stepping source de .NET Framework
En suivant les instructions de la page MSDN Comment faire : Déboguer les sources de .NET Framework :
Pour activer le débogage des sources de .NET Framework
Sur le Outils cliquez sur Options .
Dans le Options cliquez sur le bouton Débogage catégorie.
Dans le Général sélectionnez les cases à cocher suivantes :
- Activer le stepping source de .NET Framework
- Activer le support du serveur source
Je fais ça :
Note : Vous noterez, comme la page MSDN le fait, et comme je l'ai remarqué, que la vérification Activer le stepping source de .NET Framework décochera automatiquement la case **Activer Just My Code (géré uniquement). J'ai également activé les messages de diagnostic du support du serveur source.
L'activation de ces options a automatiquement défini un emplacement de téléchargement du cache des symboles pour moi :
Note : Le site Microsoft Symbol Server est déjà présente (et ne peut être supprimée).
La page MSDN dit de charger les symboles :
Pour charger les symboles Framework à l'aide de la fenêtre Modules
Dans le Modules cliquez avec le bouton droit de la souris sur un module pour lequel les symboles ne sont pas chargés. Vous pouvez savoir si les symboles sont chargés ou non en regardant l'icône Statut des symboles colonne.
Pointer vers Chargement des symboles à partir de et cliquez sur Serveurs Microsoft Symbol pour télécharger des symboles à partir du serveur public de symboles de Microsoft ou Symbol Path pour charger à partir d'un répertoire où vous avez précédemment stocké des symboles.
J'essaie ça :
et ensuite tous les symboles sont chargés :
Je suis assis sur un point d'arrêt, qui est sur le point d'appeler le code du cadre .NET :
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
base.ScaleControl(factor, specified);
Pousser F11 fait en sorte que le débogueur passe simplement à la ligne suivante :
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
base.ScaleControl(factor, specified);
//Record the running scale factor used
this.scaleFactor = new SizeF(
this.scaleFactor.Width * factor.Width,
this.scaleFactor.Height * factor.Height);
Comment activer l'extraction des sources de .NET Framework dans Visual Studio 2010 ?
Je me trouve à un point d'arrêt dans mon code. J'essaie de double-cliquer sur une fonction située plus haut dans la pile d'appels. Cela me permettrait, je l'espère, de saut au code .NET :
Sauf que ça ne fonctionne pas : Visual Studio me dit qu'il n'y a pas de source disponible :
Comment activer l'extraction des sources de .NET Framework dans Visual Studio 2010 ?
Si je passe en vue désassemblage avant d'essayer d'entrer dans le code .NET ( Déboguer -> Windows -> Démontage ), je peux voir un call
dans le code .NET :
Et quand je le fais, je finis par déboguer un désassemblage de System.Windows.Forms.ScaleControl
:
Ce qui n'est pas la même chose que, ou aussi utile que, d'être capable d'entrer dans la source du .NET Framework.
Comment activer l'extraction des sources de .NET Framework dans Visual Studio 2010 ?
Le chemin configuré pour le cache des symboles sur mon ordinateur contient bien des fichiers de cache des symboles :
Il s'agit donc de télécharger pdb
des fichiers de symboles, mais en refusant de les utiliser.
Comment activer l'extraction des sources de .NET Framework dans Visual Studio 2010 ?
Leppie a suggéré que je vérifie le Debug
log (avec la fenêtre du journal de débogage ouverte ; sinon, il n'enregistre rien) :
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
Plus tôt dans le journal, je vois qu'il charge les symboles pour System.Windows.Forms.dll
:
Loaded 'C:\Windows\assembly\GAC_MSIL\System.Windows.Forms\2.0.0.0__b77a5c561934e089\System.Windows.Forms.dll', Symbols loaded.
Donc, il est trouver mes symboles, mais en prétendant qu'il ne pouvait pas les trouver.
Comment activer l'extraction des sources de .NET Framework dans Visual Studio 2010 ?
Un gars de Microsoft Italie suggère de désactiver Exiger que les fichiers sources correspondent exactement à la version originale :
Ça n'a pas réglé le problème.
Comment activer l'extraction des sources de .NET Framework dans Visual Studio 2010 ?
Il a été suggéré qu'il y a un bug avec le serveur de source de Microsoft pour .NET Framework 4.0 . En suivant cette suggestion, j'ai changé le projet pour cibler .NET Framework 3.5 :
Ça n'a pas réglé le problème.
Comment activer l'extraction des sources de .NET Framework dans Visual Studio 2010 ?
Quelqu'un, quelque part, s'est demandé si une autre personne rencontrant le même problème utilisait la version 64-bit du débogueur . Il n'existe pas de version 64 bits de Visual Studio, mais j'ai essayé de faire passer mon projet de la version 64 bits à la version 64 bits. AnyCPU à x86 (il était en train d'être JITé en x64), au cas où Microsoft ne prendrait pas en charge les processeurs 64 bits :
Ça n'a pas réglé le problème :
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
Comment activer l'extraction des sources de .NET Framework dans Visual Studio 2010 ?
Voir aussi
- Configuration de Visual Studio pour déboguer le code source de .NET Framework
- Impossible de déboguer le code .NET framework dans VS2010
- L'étape source du cadre .NET ne fonctionne pas malgré les options définies
- Configuration de Visual Studio 2010 pour accéder au code source Microsoft .NET
- Visual Studio 2008 SP1 .NET Framework Débogage de source
- Pas de fenêtre Debug>Modules dans Visual Studio 2008 Version 9.0.21022.8 RTM
0 votes
Avez-vous vérifié le code source 'cache' ?
0 votes
@leppie Qu'entendez-vous par "cache" du code source ? Si vous voulez dire le dossier dans lequel se trouve le code source, il est en train d'être rempli (Voir Mise à jour 4 )
0 votes
Oui. Est-il possible d'ouvrir ce fichier source et de définir un point d'arrêt ?
0 votes
Juste une idée. Vous utilisez VS2010SP1 ? Si oui, il se peut que le code source de .NET 4 SP1 ne soit pas encore "disponible".
0 votes
@leppie C'est pourquoi j'ai changé mon projet pour cibler .NET Framework 3.5 ( Mise à jour 7 ). Mais, non, le SP1 n'a pas été appliqué à mon VS2010.
0 votes
Intéressant. Je viens de tester une application console, et j'ai les mêmes problèmes que vous. En vérifiant le répertoire SymbolCache, je peux voir qu'il y a des PDB's, mais pas de code source. Je jure que j'avais le code source il y a quelques semaines...
0 votes
Je sais que cette question est en suspens depuis plus d'un an, mais il pourrait y avoir du mouvement. Aujourd'hui, j'ai remarqué que les liens de téléchargement de l'initiative Shared Source avaient disparu. referencesource.microsoft.com/netframework.aspx Je ne sais pas si c'est un point positif ou négatif.
0 votes
Même problème dans Visual Studio 2012 !
0 votes
J'ai pu configurer le débogage dans VS2010 sur Win7x86, mais après avoir installé les dernières mises à jour, cette fonctionnalité ne fonctionne plus (je n'ai pas appliqué VS2010 SP1, seulement les mises à jour de Win7, y compris le SP1).
1 votes
Excellent exposé de la question !
1 votes
Il ne fonctionne pas non plus dans VS2012. Il a fonctionné pendant un jour, après que j'ai tout configuré, puis il a cessé de fonctionner. Deux jours, des dizaines de coffres, des centaines de pages web plus tard, ça ne fonctionne tout simplement pas. Dans le même temps, les sources publiées par symbolsource.org fonctionnent tout simplement comme un charme.