Mise à jour du 22 février 2013 : L'entrée Microsoft Connect a une note d'Alok Shriram (Gestionnaire de programmes, bibliothèques de classes de base, .NET Framework) que le problème doit maintenant être résolu. L'entrée Connect est marquée comme résolue (fixe) :
Ce problème devrait maintenant être résolu. Nous avons publié une mise à jour des sources de référence. Veuillez nous en informer si votre problème n'est toujours pas résolu.
Un an et demi.
Liens bonus
Question originale
Comment activer la progression de la source .NET Framework dans Visual Studio 2010?
Remarque : cette question fait partie d'un tout plus grand:
- .NET 2.0 WinForm: prise en charge des changements de polices DPI et par défaut
- Les contrôles WinForms ne sont pas mis à l'échelle pendant ScaleControl
- VS2010: Comment activer "Activer la progression de la source .NET Framework"?
- Visual Studio 2010 Professional: Comment accéder à la fenêtre Modules?
- Visual Studio 2010: Propriétés.Paramètres interrompus après le recentrage du projet vers .NET Framework 3.5
Visual Studio 2010 est livré avec une nouvelle fonctionnalité:
- Outils, Options, Débogage, Général, Activer la progression des sources .NET Framework
En suivant les instructions de la page MSDN Comment: déboguer la source .NET Framework :
Pour activer le débogage de la source .NET Framework
Dans le menu Outils , cliquez sur Options .
Dans la boîte de dialogue Options , cliquez sur la catégorie Débogage .
Dans la zone Général , cochez les cases suivantes:
- Activer la progression des sources .NET Framework
- Activer la prise en charge du serveur source
Je fais ça:
Remarque : Vous noterez, comme le note la page MSDN, et comme je l'ai remarqué, que cocher Activer le pas à pas de la source .NET Framework décochera automatiquement ** Activer juste mon code (géré uniquement). J'ai également activé les messages de diagnostic de la prise en charge du serveur source.
L'activation de ces options définit automatiquement un emplacement de téléchargement du cache de symboles pour moi:
Remarque : l' entrée Microsoft Symbol Server est déjà présente (et ne peut pas être supprimée).
La page MSDN dit de charger les symboles:
Pour charger des symboles Framework à l'aide de la fenêtre Modules
Dans la fenêtre Modules , cliquez avec le bouton droit sur un module pour lequel les symboles ne sont pas chargés. Vous pouvez savoir si les symboles sont chargés ou non en consultant la colonne État des symboles .
Pointez sur Charger les symboles à partir de et cliquez sur Serveurs de symboles Microsoft pour télécharger des symboles à partir du serveur de symboles publics Microsoft ou sur Chemin des symboles pour les charger à partir d'un répertoire dans lequel vous avez précédemment stocké des symboles.
J'essaye ceci:
puis tous les symboles sont chargés:
Je me suis assis sur un point d'arrêt, qui est sur le point d'appeler le code du framework .NET:
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
base.ScaleControl(factor, specified);
Si vous F11appuyez sur, 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 la progression de la source .NET Framework dans Visual Studio 2010?
Je suis assis à un point d'arrêt dans mon code. J'essaye de double-cliquer sur une fonction plus haut dans la pile d'appels. Cela me permettrait, je l'espère, de passer au code .NET:
Sauf que cela ne fonctionne pas: Visual Studio me dit qu'il n'y a pas de source disponible:
Comment activer la progression de la source .NET Framework dans Visual Studio 2010?
Si je passe en mode désassemblage avant d'essayer d'entrer dans le code .NET ( Débogage -> Windows -> Désassemblage ), je peux voir un call
dans le code .NET:
Et quand je le fais, je finis par déboguer un démontage de System.Windows.Forms.ScaleControl
:
Ce qui n'est pas la même chose ou aussi utile que de pouvoir accéder à la source .NET Framework.
Comment activer la progression de la source .NET Framework dans Visual Studio 2010?
Le chemin du cache de symboles configuré sur mon ordinateur contient des fichiers de cache de symboles:
Il télécharge donc des pdb
fichiers de symboles, mais refuse de les utiliser.
Comment activer la progression de la source .NET Framework dans Visual Studio 2010?
Leppie a suggéré que je vérifie le Debug
journal (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 le vois charger des 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 de trouver mes symboles, mais affirmant qu'il ne pouvait pas les trouver.
Comment activer la progression de la source .NET Framework dans Visual Studio 2010?
Un gars de Microsoft Italie suggère de désactiver Exiger les fichiers source pour correspondre exactement à la version originale :
Cela ne l'a pas réglé.
Comment activer la progression de la source .NET Framework dans Visual Studio 2010?
Il a été suggéré qu'il y a un bogue avec le serveur source de Microsoft pour .NET Framework 4.0 . Suite à cette suggestion, j'ai basculé le projet vers la cible .NET Framework 3.5 :
Cela ne l'a pas réglé.
Comment activer la progression de la source .NET Framework dans Visual Studio 2010?
Quelqu'un quelque part s'est demandé paresseusement si une autre personne rencontrant le même problème utilisait la version 64 bits du débogueur . Maintenant, il n'y a pas de version 64 bits de Visual Studio, mais j'ai essayé de faire passer mon projet d' AnyCPU à x86 (il était en cours de JIT vers x64), au cas où Microsoft ne prend pas en charge les processeurs 64 bits:
Cela n'a pas résolu le problème:
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
Comment activer la progression de la source .NET Framework dans Visual Studio 2010?
Voir également
- Configuration de Visual Studio pour déboguer le code source .NET Framework
- Impossible de déboguer le code du framework .NET dans VS2010
- La progression de la source .NET Framework ne fonctionne pas malgré le jeu d'options
- Configuration de Visual Studio 2010 pour entrer dans le code source Microsoft .NET
- Débogage des sources de Visual Studio 2008 SP1 .NET Framework
- Pas de fenêtre Debug> Modules dans Visual Studio 2008 Version 9.0.21022.8 RTM
la source
Réponses:
Les PDB pour parcourir le code source ne sont publiés que pour les RTM et les Service Packs. En tant que tel, lorsque la mise à jour de sécurité sort et qu'elle modifie la dll que vous essayez de déboguer, la progression de la source ne fonctionnera pas (c'est-à-dire que vous obtiendrez le message "Aucune source disponible" avec un grisé "Parcourir pour trouver la source ").
Cependant, une fois que vous avez défini tous les paramètres appropriés, vous pouvez utiliser la solution de contournement suivante. La solution de contournement consiste essentiellement à rechercher les mises à jour de sécurité qui ont provoqué la modification de la DLL, puis à les supprimer. Cela présente l'inconvénient évident de supprimer ces mises à jour de sécurité sur votre ordinateur.
solution de contournement
site:support.microsoft.com/kb System.Windows.Forms.dll 4.0.30319.269
http://support.microsoft.com/kb/2604121
, donc KB2604121, c'est ce qui nous intéresse.Vous devrez le faire pour chaque dll dans le framework .NET dans lequel vous vous souciez du débogage.
Une fois que cela est fait, définissez un point d'arrêt dans la source .net (par exemple, allez dans l'onglet Breakpoints, dites Nouveau-> Break at Function, et entrez System.Windows.Forms.Form.Form) ou entrez dans l'un des .net méthodes dans cette DLL.
la source
Bien que malheureusement il y ait un problème avec un Microsoft, comme Leppie l'a souligné (et j'ai obtenu le même résultat voir
il convient de noter que votre tentative échouerait de toute façon, puisque vous avez référencé:
au lieu de:
referencesource.microsoft.com/symbols
Consultez la section FAQ / Dépannage de la configuration de Visual Studio pour déboguer le code source .NET Framework
la source
J'ai trouvé la réponse, je pense.
J'ai retracé ce qui se passait sur Fiddler. Il semble que seuls les symboles sont actuellement disponibles, et aucune source.
Lorsque VS essaie de charger les symboles à partir du serveur 'referencesource', il échoue (404). Comme cela échoue, je pense qu'il ne peut pas mapper aux fichiers source sur ce serveur.
http://referencesource.microsoft.com/symbols/mscorlib.pdb/ED96A7F38A2940F39B9CA7AD9BC5CB671/mscorlib.pdb
Après l'échec ci-dessus, il essaie un serveur appelé 'msdl' où il trouve le PDB réel (mais il semble que celui-ci n'ait aucune information sur le code source).
http://msdl.microsoft.com/download/symbols/mscorlib.pdb/ED96A7F38A2940F39B9CA7AD9BC5CB671/mscorlib.pd_
Dans l'ensemble, il semble être un problème (temporaire) de Microsoft avec leurs serveurs.
Je suis sûr que j'avais du code source il y a quelque temps. Mais maintenant, cela ne fonctionne pas.
Éditer:
Je l'ai essayé avec différentes versions .NET, toutes avec le même résultat. :(
la source
Pour l'instant, cela ne fonctionne pas si le SP1 est installé. Voici quelques commentaires sur la forme de problème MS: http://social.msdn.microsoft.com/Forums/en-US/refsourceserver/thread/41388c7b-582b-4e3f-8178-3d38a3c99639
la source
Dans mon cas, je déboguais une ancienne application WinForms .NET 2.0 et j'ai obtenu le message «Source non disponible» message . J'ai essayé tous les paramètres recommandés.
En fin de compte, j'ai reconstruit l'application pour cibler temporairement .NET 4.5 et j'ai pu faire fonctionner la source. Peut-être que mon application était trop ancienne pour la progression des sources. Un peu va à l'encontre de l'objectif, je sais, mais pour des tests rapides et sales, cela fonctionne. Le bogue que j'ai est toujours présent dans .NET 4.5 . :)
la source
Vous pouvez trouver la source de référence ici, disponible en téléchargement:
Source de référence .NET Framework 4.0
Les sources pour WCF, WF et même la version 4.5 Beta / RC et bien d'autres peuvent également être trouvées ici:
Microsoft Referencesource NetFramework
la source
Voici les instructions officielles https://referencesource.microsoft.com/setup.html
la source
si vous souhaitez déboguer du code open source (tel que le package nuget), vous pouvez ajouter cette URL à votre liste de serveurs de symboles
http://srv.symbolsource.org/pdb/Public
la source