web-dev-qa-db-fra.com

Empêcher Visual Studio d'essayer de charger des symboles pour un certain DLL

J'ai Visual Studio 2005 configuré pour utiliser les serveurs de symboles de Microsoft. J'ai également ltraMon installé, ce qui injecte un crochet DLL dans chaque processus. Chaque fois que je commence à déboguer mon MFC application, Visual Studio dit:

"Loading symbols for C:\Program Files\UltraMon\RTSUltraMonHookX32.dll..."

pour tout, du clin d'œil à plusieurs dizaines de secondes. Il ne trouvera jamais ces symboles ... Puis-je lui dire de ne pas prendre la peine de regarder?

(J'ai essayé de créer un RTSUltraMonHookX32.pdb fichier, mais Visual Studio voit que ce n'est pas bon et continue de chercher.)

60
RichieHindle

Vous ne pouvez pas le faire de manière très fine, mais vous pouvez désactiver le chargement automatique des symboles, puis choisir manuellement les symboles à charger via la fenêtre Modules (Débogage -> Windows -> Modules).

Pour désactiver le chargement automatique des symboles

  • Outils -> Options -> Débogage -> Symboles
  • Cochez "Rechercher les emplacements ci-dessus uniquement lorsque les symboles sont chargés manuellement"
104
JaredPar

Vérifiez également que vous n'avez pas de variable d'environnement "_NT_SYMBOL_PATH". Si vous avez cette var, les symboles se chargeront indépendamment des paramètres VS.

24
Denis Bakharev

À partir de Visual Studio 2010, vous pouvez accéder à:

Tools -> Options -> Debugging -> Symbols -> Specify excluded modules

et entrez la liste des DLL qui prennent trop de temps à charger. J'utilise le chemin complet, donné par la fenêtre de sortie; il accepte peut-être des caractères génériques ou des noms de fichiers simples.

20
Calvin1602

Dans mon cas, c'était parce que j'avais défini "Activer le pas de source .Net" sur true in

Tools > Options > Debugging > General. 

Plutôt que de le définir sur false, j'ai défini "Activer juste mon code" sur true, ce qui définit automatiquement "Activer le pas de source .Net" sur faux. Cela m'a donné un avertissement avant de le faire:

Enabling Just my code automatically disabled .Net framework source stepping

Ce qui suggère Just My Code et .Net source stepping sont mutuellement exclusifs.

J'espère que ça aidera quelqu'un.

9
Hugo Nava Kopp

Non seulement le _NT_SYMBOL_PATH peut provoquer ce problème, mais pour moi c'était le _NT_ALT_SYMBOL_PATH variable d'environnement à l'origine des retards.

(Je crois que j'ai ajouté cette variable lors de l'expérimentation avec WinDbg)

1
Raf

Vous pouvez également configurer des exclusions de serveur de symboles qui ne seront pas tentées de télécharger dans HKEY_CURRENT_USER\Software\Microsoft\Symbol Server\Exclusions ou éventuellement également HKEY_LOCAL_MACHINE\Software\Microsoft\Symbol Server\Exclusions ou via un fichier .ini dans% WINDIR%\system32\inetsrv\Symsrv.ini (utilisez l'en-tête [exclusions] et placez chaque exclusion sur sa propre ligne). Les exclusions sont de simples correspondances de motifs, utilisez donc msxml5. * Par exemple.

1
adzm
  • Chargez tous les packages de symboles à partir du site Web de MS manuellement, placez-les sur un lecteur SSD pour la vitesse :-)
  • Si vous avez une variable d'environnement "_NT_SYMBOL_PATH", supprimez la partie "http://msdl.Microsoft.com/download/symbols " de "SRV e:\symboles * http://msdl.Microsoft.com/download/symbols ", vous n'avez donc que le chemin des symboles où vos symboles vivent précieusement téléchargés.
  • Maintenant, vous avez un support pour les symboles mais ils ne seront pas téléchargés depuis MS, mais chargés depuis le lecteur
0
Martin.Martinsson

Dans Visual Studio 2013 Pro, si Microsoft Symbol Server est coché, VS tentera de charger tous les symboles sur leur serveur, ce qui entraînera beaucoup de temps supplémentaire.

0
Jim Davis