2010-08-23 3 views
3

J'ai _NT_SYMBOL_PATH d'installation et ont signalé àPourquoi les DLL locales sont-elles chargées une fois pour toutes après le réglage de _NT_SYMBOL_PATH?

srv*c:\symbols*http://msdl.microsoft.com/download/symbols 

Lors du démarrage du débogueur, je remarque que la charge de dll de Windows liée rapidement. Cependant, les DLL de notre société prennent un temps terrible à charger. Quand je me débarrasse de _NT_SYMBOL_PATH, redémarrez visual studio, alors tout se charge assez rapidement (bien que je n'ai pas de symboles MS). C'est presque comme si le serveur de symboles ci-dessus recherchait les pdbs de ma DLL interne de la société au lieu de vérifier d'abord s'ils existaient localement. Certains de ces dlls je n'ai pas de pdbs pour. Certains font partie de ma solution, donc je les construis lors du débogage et j'ai toujours des pdbs.

Comment Visual Studio recherche-t-il des symboles? Y at-il de toute façon que je peux contrôler comment studio visuel cherche des symboles? Puis-je dire explicitement que les DLL d'un répertoire donné ne doivent pas être recherchés pour les symboles? Y a-t-il autre chose qui pourrait faire baisser la vitesse à laquelle les symboles sont chargés ou tout ce que je peux faire pour accélérer le processus?

Répondre

9

Visual Studio recherche _NT_SYMBOL_PATHavant tous les chemins configurés dans Visual Studio. C'est une "caractéristique" du moteur de débogage. Cela signifie que les serveurs de symboles de Microsoft seront recherchés pour vos symboles.

Dans Visual Studio 2010, ils l'ont rendu explicite par (s'il est défini), y compris _NT_SYMBOL_PATH dans la boîte de dialogue Débogage des symboles. Malheureusement, cette entrée cannot be moved up or down.

Pour contourner ce problème, mettez votre serveur de symbole dans _NT_SYMBOL_PATHavant la substance Microsoft:

_NT_SYMBOL_PATH=cache*C:\symbols;\\mysymsvr\Symbols;SRV*C:\symbols*http://msdl.microsoft.com/download/symbols

2

En plus de @ réponse de Roger.

Si vous déboguez dans Visual Studio j'éviterais d'utiliser la variable d'environnement _NT_SYMBOL_PATH en faveur de l'utilisation des paramètres de Visual Studio.

Outils -> Options -> Symboles de débogage

En 2010, cela vous permet une plus grande granularité que la voie variable d'environnement brut. Par exemple, vous pouvez filtrer la liste des DLL pour lesquelles Visual Studio tente de charger des symboles par défaut. Ceci est très utile dans les grands projets où votre seul intérêt dans un petit sous-ensemble des DLL et que vous voulez réduire le temps de chargement.

+0

Vous remarquerez que, dans VS2010, si _NT_SYMBOL_PATH est défini, il apparaît en haut de la liste des symboles de débogage ** et ne peut pas être déplacé **. Voir https://connect.microsoft.com/VisualStudio/feedback/details/523855/move-up-move-down-buttons-dont-work-in-the-symbol-file-pdb-locations-list –

Questions connexes