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.)
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
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.
À 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.
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.
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)
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.
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.