Symboles de chargement de Visual Studio


166

Je travaille sur un projet ColdFusion depuis un moment maintenant, et Visual Studio a commencé à se comporter de manière étrange pour moi au moins.

J'ai observé que lorsque j'ai commencé le débogage, il a construit le projet, il a commencé le déploiement, et le déploiement s'est terminé et il commençait à charger des symboles pour mon projet.

Mais c'était très lent, et je ne sais pas pourquoi il a commencé à faire cette étape. Que puis-je avoir fait?

Cette étape de chargement des symboles est-elle nécessaire? Comment puis-je le désactiver?

Dans la boîte de dialogue Outils -> Options -> Débogage -> Symboles, aucun emplacement de fichier de symboles (.pdb) n'est ajouté. Et j'ai pointé le répertoire de débogage de mon projet dans le champ ci-dessous, et j'ai coché la case "Rechercher dans le répertoire ci-dessus uniquement lorsque les symboles sont ....". Comment dois-je configurer cette boîte de dialogue pour désactiver le chargement des symboles?

J'ai regardé dans la fenêtre Modules quels symboles sont chargés, mais cela ne me dit rien. Quel est le problème?

entrez la description de l'image ici


3
J'ai essayé toutes les réponses du fil sans succès.
Johan Larsson

3
Habituellement, les symboles devraient être mis en cache et devraient prendre peu ou pas de temps à charger, la seule fois où vous remarquerez que le chargement des symboles est lent est si les symboles se chargent à partir de serveurs de symboles Microsoft, ce qui est très très lent, par exemple (pas toujours très lent mais lent aucun le moins), donc un bon moyen d'essayer de résoudre ce problème est de supprimer le cache des symboles, allez simplement dans Débogage -> Options -> Débogage -> Symboles et cliquez sur le cache de symboles vide, si cela ne fonctionne pas pourrait être un autre problème entièrement, espérons que cela profite à quelqu'un, car la question est de 3 ans (:
daniel

Réponses:


266

Déboguer -> Supprimer tous les points d'arrêt ( http://darrinbishop.com/blog/2010/06/sharepoint-2010-hangs-after-visual-studio-2010-f5-debugging ) Après cela, vous pouvez les utiliser à nouveau, mais faites-le une fois que. Cela supprimera également certains types de points d'arrêt "invalides" et le chargement des symboles sera à nouveau rapide. Je chassais ce problème pendant des jours :(.


4
Les utilisateurs de Visual Web Developer 2010 Express peuvent appuyer sur CTRL + MAJ + F9 et une invite "Voulez-vous supprimer tous les points d'arrêt?" apparaîtra. Vous avez besoin d'au moins un point d'arrêt actif (vous ne savez pas si le ou les points d'arrêt problématiques en arrière-plan comptent, définissez-en un). Merci! Beaucoup plus rapide maintenant ...
Cymen

Quelle étoile! Merci beaucoup.
user489998

En effet, cela fonctionne! Incroyable! Quelqu'un a-t-il déjà signalé ce bug évident à Microsoft?
real_yggdrasil

Vous êtes un début, cela me rend fou depuis des jours. Mille mercis!
markpcasey le

Eh bien, c'était inattendu! Cela a vraiment fonctionné. Vous m'avez sauvé la journée, merci beaucoup!
tmatuschek

132

Une autre raison du chargement lent est si vous avez désactivé "Activer juste mon code" dans les options de débogage. Pour activer cela, accédez à:

Tools -> Options -> Debugging -> General -> Enable Just My Code (Managed Only) 

Assurez-vous que cela est coché.


L'option «Juste mon code» n'est pas disponible dans la boîte de dialogue Options dans certaines versions Express de Visual Studio (elle se trouve dans Visual C # 2010 Express, cependant), mais elle peut être modifiée par d'autres moyens: Comment désactiver «Juste mon code 'dans Visual Basic 2005 Express? .
Peter Mortensen

3
C'est celui qui l'a corrigé pour moi ... pas la réponse "Supprimer tous les points d'arrêt".
Mark Brittingham

C'est à peu près la pire option de Visual Studio. Il est préférable de désactiver simplement le chargement des symboles afin de pouvoir toujours voir les lancements d'exceptions et les cadres de pile qui sont simplement des symboles manquants. (Juste un nombre difficile à lire au lieu d'un nom). Bien sûr, je travaille généralement sur du code de site Web, donc il y a beaucoup d'IIS sous moi qui peuvent échouer. Normalement, il suffit de désélectionner Microsoft (et tous les serveurs de symboles distants) comme source de données.
ebyrob le

Tu as sauvé ma demi-journée ...! : D
Vaibhav Deshmukh le

43

Configurer dans Outils, Options, Débogage, Symboles.

Vous pouvez regarder la fenêtre de sortie (vue, sortie) pour voir ce qu'elle fait habituellement. Si c'est vraiment lent, cela signifie probablement qu'il frappe un serveur de symboles, probablement celui de Microsoft, pour télécharger les symboles manquants. Cela prend trois hits HTTP pour chaque fichier qu'il ne peut pas trouver à chaque démarrage - vous pouvez parfois le voir dans la barre d'état en bas ou dans, par exemple, Fiddler. Vous pouvez voir quels modules ont chargé des symboles dans Debug, Windows, Modules pendant le débogage.

Les symboles signifient que vous obtenez des informations utiles de trace de pile dans des assemblages tiers et système. Vous en avez certainement besoin pour votre propre code, mais je pense que ceux-ci sont chargés malgré tout. Votre meilleur pari est de désactiver toutes les sources de symboles non locaux dans ce menu et, si vous chargez beaucoup de symboles pour les assemblys système dans lesquels vous n'avez pas besoin de déboguer, vous pouvez désactiver temporairement leur chargement pour accélérer le démarrage du débogage - mais ils sont souvent utiles pour avoir chargé.


3
Dans la boîte de dialogue Outils -> Options -> Débogage -> Symboles, aucun emplacement de fichier de symboles (.pdb) n'est ajouté. Et j'ai pointé le répertoire de débogage de mon projet dans le champ ci-dessous, et j'ai coché la case "Rechercher dans le répertoire ci-dessus uniquement lorsque les symboles sont ....". Je ne sais pas comment configurer cette boîte de dialogue pour désactiver le chargement des symboles.
arnoldino

1
Hmm, je ne sais pas alors. Vous devez charger des symboles pour votre propre code pour le déboguer, donc je ne pense pas que vous vouliez le désactiver complètement. Je suppose que je regarderais alors la fenêtre Modules pour voir quels symboles étaient chargés, déterminer ceux dont vous avez réellement besoin, puis supprimer peut-être les .pdbs de votre cache de symboles pour ceux que vous ne voulez pas?
Rup

1
Vérifiez le 'utiliser le serveur de symboles Microsoft', exécutez votre code une fois, puis tous les symboles sont dans le cache. Vous pouvez maintenant décocher la case pour une augmentation de vitesse.
john ktejik

1
La désactivation du serveur de symboles Microsoft dans Outils -> Options -> Débogage -> Symboles a résolu ce problème pour moi. Avant, j'attendais 30 secondes pour que le débogage démarre. Maintenant, c'est juste une seconde environ.
Mike Chamberlain

41

J'ai juste eu ce problème.

Je l'ai corrigé en accédant à:

Outils -> Options -> Débogage -> Symboles

Puis décochant toutes les sources non locales pour les emplacements des fichiers de symboles (.pdb)

par exemple Microsoft Symbol Servers et msdl.microsoft.com/download/symbols


23

J'ai fait face à un problème similaire. Dans mon cas, j'avais défini _NT_SYMBOL_PATH pour télécharger à partir de serveurs Microsoft pour une utilisation dans WinDbg et il semble qu'une fois défini, Visual Studio l'utilisera sans aucun moyen de l'ignorer. La suppression de cette variable d'environnement a résolu mon problème.


Cela a également résolu le problème pour moi (je suppose que le faible nombre de votes positifs est dû au faible nombre de personnes qui ont défini cette variable ...) Merci!
Aasmund Eldhuset

Pareil ici. Je pensais que je pourrais simplement le décocher des symboles, mais non, le var env doit être supprimé / renommé.
codekaizen le

16

Vous pouvez essayer la réponse suivante au débogage / chargement de Visual Studio très lent :

  1. Allez dans Outils -> Options -> Débogage -> Général

  2. Cochez la case "Activer uniquement mon code".

  3. Allez dans Outils -> Options -> Débogage -> Symboles

  4. Cliquez sur le bouton "..." et créez / sélectionnez un nouveau dossier quelque part sur votre ordinateur local pour stocker les symboles mis en cache. J'ai nommé le mien "Symbol caching" et l'ai mis dans Documents -> Visual Studio 2012.

  5. Cliquez sur «Charger tous les symboles» et attendez que les symboles soient téléchargés à partir des serveurs de Microsoft, ce qui peut prendre un certain temps. Notez que le bouton Charger tous les symboles n'est disponible que pendant le débogage.

  6. DÉCochez la case à côté de «Microsoft Symbol Servers» pour empêcher Visual Studio d'interroger à distance les serveurs Microsoft.

  7. Cliquez sur OK".

Essayez également de supprimer tous les points d'arrêt (Déboguer> Supprimer tous les points d'arrêt),

Voir aussi : Visual Studio 2015 RC1 se bloque en mode débogage lors du chargement de symboles


6

Pour moi, cela semble lié aux points d'arrêt, comme indiqué dans la réponse acceptée. Cependant, j'ai trouvé deux solutions de contournement qui n'impliquaient pas la suppression de tous les points d'arrêt:

  • Le redémarrage de Visual Studio semblait le résoudre temporairement.
  • Cliquer sur le bouton «X» pour fermer Visual Studio pendant le débogage provoque le message «Voulez-vous arrêter le débogage?» boîte de message pour apparaître; pendant que cette boîte de message est ouverte, les symboles se chargent à des vitesses ordinaires. Une fois tous les symboles chargés, vous pouvez cliquer sur "Non" pour annuler la fermeture.

3
merci pour cette solution de contournement folle (avec le message «voulez-vous arrêter le débogage»). J'ai d'abord essayé les autres réponses, mais jusqu'à présent, seul le "X" rouge et l'astuce "voulez-vous ..." m'aident. merci, je perdais la raison ...
pestophage

2
@que: Heh, de rien! Je l'ai découvert par accident. Il semble que VS ait une boucle de message distincte dans laquelle il entre pour ce dialogue modal, donc chaque fois qu'il est lent sans raison, la boîte de dialogue est parfois utile :-)
Cameron

6

Je viens de rencontrer ce problème. La suppression des points d'arrêt ne fonctionnait pas, ou du moins pas simplement. Après cet échec, je suis allé Outils> Options> Débogage> Symboles et "Vider le cache de symboles"

puis nettoyé la solution et reconstruite.

Maintenant semble fonctionner correctement. Donc, si vous essayez toutes les autres choses énumérées, et que cela ne fait toujours pas de différence, ces informations supplémentaires peuvent vous aider ...


2

Dans mon cas, Visual Studio recherchait des PDB tiers dans des chemins qui, sur ma machine, faisaient référence à un lecteur optique. Sans disque dans le plateau, il a fallu environ 30 minutes à Windows pour échouer, ce qui a ralenti Visual Studio alors qu'il tentait de charger les PDB à partir de cet emplacement. Plus de détails sont disponibles dans ma réponse complète ici: https://stackoverflow.com/a/17457581/85196


2

J'ai eu le même problème et même après avoir désactivé le chargement des symboles, le chargement du module dans Visual Studio était terriblement lent.

La solution était de désactiver le logiciel antivirus (dans mon cas NOD32) ou mieux encore, d'y ajouter des exceptions afin qu'il ignore les chemins à partir desquels votre processus charge les assemblys (dans mon cas, il s'agit du dossier GAC et de l'ASP temporaire Dossier Fichiers .NET).


2

Mes 2 cents,

J'avais un problème similaire en essayant d'obtenir un rapport de diagnostic (Visual Studio 2013) en mode de sortie x64 (échantillonnage du processeur) et tandis que les symboles pour les fichiers dll nécessaires étaient chargés, les symboles de mon exécutable ne se chargeaient pas.

Je n'ai rien changé dans le menu Symboles, j'ai plutôt apporté des modifications dans les pages de propriétés du thread de mon exécutable dans l'Explorateur de solutions, à savoir

Propriétés de configuration / Général / Activer la construction incrémentielle gérée sur OUI

Propriétés de configuration / Débogage / Fusionner l'environnement sur NON

Propriétés de configuration / C / C ++ / Activer les informations de navigation sur OUI (/ FR)

Propriétés de configuration / Éditeur de liens / Activer la liaison incrémentielle à OUI (/ INCREMENTAL)

EDIT: Ce dernier fait l'affaire

....

Propriétés de configuration / Éditeur de liens / Débogage / Générer les informations de débogage sur Oui (/ DEBUG)

....

Après cela, cela a fonctionné et il a bien chargé les symboles. Je suis sûr qu'un ou plusieurs des éléments ci-dessus ont fait l'affaire pour moi (même si je ne sais pas exactement lesquels) et que je veux simplement que les autres le sachent et l'essaient.

paix


1

Essayez de faire un clic droit sur l'un des points d'arrêt, puis choisissez «Emplacement». Cochez ensuite la case 'Autoriser le code source à être différent de la version d'origine'


1

Options d'accélération du symbole de débogage de Visual Studio 2017, en supposant que vous ne soyez pas déjà devenu fou sur la personnalisation d'options:

  1. À Tools -> Options -> Debugging -> Symbols
    un. Activez l'option «Microsoft Symbol Server»
    b. Cliquez sur "Vider le cache de symboles"
    c. Réglez votre cache de symboles à un endroit facile à trouver, comme C:\dbg_symbolsou%USERPROFILE%\dbg_symbols
  2. Après avoir relancé Debug, laissez-le charger tous les symboles une fois, du début à la fin, ou autant que raisonnablement possible.

1A et 2 sont les étapes les plus importantes. 1B et 1C ne sont que des modifications utiles pour vous aider à garder une trace de vos symboles.

Une fois que votre application a chargé tous les symboles au moins une fois et que le débogage ne s'est pas terminé prématurément, ces symboles doivent être rapidement chargés lors de la prochaine exécution du débogage.

J'ai remarqué que si j'annule une exécution de débogage, je dois recharger ces symboles, car je suppose qu'ils sont "nettoyés" s'ils sont nouvellement introduits et soudainement annulés. Je comprends la raison d'être de ce type de flux, mais dans ce cas, il semble mal pensé.


0

Décocher «Activer le débogage JavaScript pour ASP.NET (Chrome et IE)» dans Outils-> Options-> Débogage-> Général a résolu mon cas d'indisponibilité pour lancer le débogueur VS2017 avec des points d'arrêt prédéfinis.


0

La seule chose qui a fonctionné pour moi a été de changer le type de code.

Dans la fenêtre Attacher au processus , j'ai changé la sélection Attacher à: sur Déterminer automatiquement le type de code à déboguer , puis mes points d'arrêt ont été atteints.

Avant, je n'avais sélectionné que du code natif .


0

J'ai eu un problème similaire où Visual Studio continue de charger le symbole et est resté bloqué.

Il s'avère que j'ai ajouté des "arguments de ligne de commande" dans les options de débogage, et l'un des paramètres n'est pas valide (je suis censé transmettre certaines valeurs). entrez la description de l'image ici

Après avoir supprimé le paramètre supplémentaire, il recommence à fonctionner.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.