2009-11-25 6 views
4

De nombreuses questions ont été posées à ce sujet et de nombreuses réponses ont été proposées, mais rien n'a fonctionné pour moi.Prévention du chargement des symboles dans Visual Studio

À un moment donné, je me tournai le symbole .NET chargement pour les projets WPF, en suivant ces instructions: http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx

fonctionnait très bien, tout frais et cela. Sauf dans les projets Silverlight, il essayait également de charger des symboles à partir de ce serveur, mais ils n'existaient pas, donc le temps de démarrage pour déboguer un projet était énorme. J'ai donc désactivé le chargement des symboles et j'ai arrêté de charger tous les symboles, à l'exception d'un espace de noms: System.Windows.Browser. VS essaie toujours de charger ceux avec chaque F5, prenant plusieurs secondes et me rendant fou.

J'ai essayé d'ajouter le serveur de symbole mentionné ici aussi: http://blogs.msdn.com/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx

pensant que peut-être les symboles étaient là, ils avaient bien chargées et mises en cache, et tout irait bien. Mais non, non seulement ils ne sont pas chargés, mais VS essaie de charger des symboles pour toutes les autres DLL de mon projet, y compris celles pour lesquelles les symboles n'ont jamais été disponibles, ce qui rend le démarrage encore plus long. Franchement, je n'ai même pas besoin de déboguer dans les sources de ces DLL, je pensais juste que ce serait cool. Maintenant, je ne peux pas l'éteindre et ça me rend fou. Quelle est la solution?

Répondre

8

Outils -> Options -> Mise au point -> Symboles -> Cochez "Rechercher les emplacements ci-dessus uniquement lorsque les symboles sont chargés manuellement", ou tout supprimer de la liste.

Si vous cochez la case, vous pouvez cliquer sur -> Charger les symboles sur les DLL dans la fenêtre Liste des modules/Pile.

+0

Salut Jeff! J'ai totalement essayé ça. J'ai supprimé tous les serveurs de symboles, décoché toutes les boîtes, et il veut toujours charger System.Windows.Browser. Mais juste celui-là! –

3

Je pense que vous pouvez avoir

 
_NT_SYMBOL_PATH 

défini dans votre environnement. Cela semble remplacer ce que vous faites dans Outils-> Options-> Débogage-> Symboles. J'ai eu le même problème, et il m'a presque conduit des bananes, mais dans un moment de créativité j'ai dirigé procmon (de sysinternals) à devenv.exe et cherché le journal pour "symbole", et la première chose qui apparaît était cette variable d'environnement mentionnée au dessus. Il pourrait y avoir d'autres voies sinistres similaires, mais je ne serais pas surpris si vous pouviez sortir avec un peu d'aide de Procmon.

Je suppose que ce comportement vient du fait que symsrv.dll, qui est le chargement de symboles, est utilisé avec d'autres outils et il existe différentes façons de signaler que les symboles doivent être chargés et ... eh bien, je suppose que cela va au compte "merde-arrive". Sur une note - ce comportement peut être vraiment mauvais pour vous si vous avez du code qui utilise des fonctions wininet telles que HttpSendRequest(). Il bloquera rapidement le studio visuel et toutes les instances d'Internet Exploder. Ajoutez à ce symbole le chargement qui ne se laisse pas éteindre. Vous pouvez imaginer ce qu'un jour, je l'ai eu jusqu'à présent ...

Mais je me sens mieux maintenant :)

// P

+0

Cela pourrait très bien être cela, je l'ai utilisé dans le passé pour exécuter xperf contre le contenu Silverlight. Cependant maintenant je ne peux pas tester depuis que j'ai réussi à arroser mon installation VS si mal que j'ai dû recommencer. –

+0

Donc, non, ce n'est pas ça. J'ai une nouvelle installation de Windows, VS, et tous les outils, et je n'ai rien réglé sur le chargement des symboles, et il essaie toujours de les charger pour cette DLL. Doit être un bug quelque part. –