Visual Studio 2015 Débogage: impossible de développer des variables locales?

J’utilise l’aperçu de Visual Studio 2015 et j’essaie de déboguer mon projet. J’utilisais précédemment VS 2012 et dépendait largement de la possibilité de survoler et d’étendre les variables locales pour examiner leurs valeurs. J’essaie de le faire en 2015 maintenant, mais quand je survole une variable, la boîte qui apparaît ne dit que “(variable locale) Nom de classe variablename” (par exemple “(variable locale) Titre de la chaîne”). Il n’y a pas de bouton d’extension et la valeur de la variable dans la zone n’est pas affichée.

Y a-t-il un paramètre que je dois changer pour pouvoir survoler les variables et les développer?

Ce pourrait être un bug. S’il vous plaît déposer un bug Connect avec une repro si vous en avez un.

En attendant, vous pouvez résoudre le problème en définissant les options du débogueur pour utiliser le moteur de débogage hérité: Outils -> Options -> Débogage -> Général: cochez “Utiliser les évaluateurs d’expression C # et VB hérités” et “Utiliser Mode de compatibilité géré “.

Cette solution de contournement a fonctionné pour moi à chaque fois. Mais s’il vous plaît, faites toujours les bugs!

Fenêtre Options

J’ai eu un problème similaire où, lorsque je flottais au-dessus de ma variable locale, certains me laissaient plonger plus profondément et certains ne montraient rien. Après quelques recherches, j’ai trouvé un article sur msdn ici , qui proposait de réinitialiser les parameters dans VS. Une fois que j’ai fait cela, j’ai reçu un message indiquant que j’utilisais le mode Release et que certaines fonctionnalités de débogage n’étaient pas disponibles. Une fois que j’ai changé en mode de débogage, tout a fonctionné comme d’habitude.

J’espère que cela fonctionnera pour vous aussi.

Comme décrit ici , vous devez activer la coche «Supprimer les optimisations JIT sur le chargement du module (Géré uniquement)» dans Debug -> Options -> Débogage -> Général.

Vous devez également supprimer l’indicateur “Optimiser le code” dans les propriétés de vos projets.

J’avais un problème similaire dans VS2015 où certaines variables afficheraient les valeurs de débogage, d’autres ne montreraient rien lorsqu’elles survoleraient.

L’activation du paramètre suivant à partir d’Andrew Arnott a résolu mon problème: Outils -> Options -> Débogage -> Général: “Utiliser les évaluateurs d’expression C # et VB hérités”

J’ai découvert le moyen de décomposer le code natif et d’avoir access au contenu des conteneurs STL lors du débogage à l’aide de l’interface de ligne de commande:

Outils \ Options … \ Débogage \ Général: décochez la case “Utiliser le mode de compatibilité géré” (OUI! INCHECK IT!)

Dans le code natif, au lieu d’append des points d’arrêt, ajoutez simplement ceci:

affirmer (faux);

Lorsque vous vous brisez contre les rives, cliquez simplement sur “Réessayer” pour déboguer ou “Ignorer” pour continuer.

Bon débogage avec Visual Studio 2015 🙂

Kochise

J’ai trouvé que le simple fait de changer la liste déroulante avec “Release and debug” en debug me permettait de voir l’expansion des variables lors du débogage de mon code.

Cette nouvelle solution a fonctionné pour VS 2017 sur mon ordinateur personnel.

Mon travail sur PC a été en mesure de montrer cette extension en 2017 après avoir fait l’option «Build >> Clean Solution et fonctionnera même lorsque la liste déroulante est définie sur« Release ».

Bonne chance à tous ceux qui veulent ce merveilleux outil de débogage, formez VS. J’espère qu’en utilisant l’une de ces méthodes, vous pourrez revenir à la “normale”.

J’avais un projet qui utilisait des fichiers JavaScript minifiés et souhaitais utiliser les fichiers TypeScript pour le débogage. J’ai mis le code JavaScript non modifié et le TypeScript associé dans le projet et modifié les références pour utiliser le fichier JavaScript normal et non le fichier minifié. Mes points de rupture ont été frappés dans le fichier TypeScript mais je n’obtenais pas d’informations de survol (étonnamment, il semblait que l’ajout de l’object / de la variable semblait fonctionner).

Pour corriger, j’ai juste exclu le JavaScript minifié du fichier du projet et inclus le JavaScript. (Le fichier TypeScript que j’ai laissé exclu).

Cela a fonctionné pour moi dans VS2017 (Mon VS est en allemand, donc les noms des tabs peuvent être un peu différents):

Projet -> Propriétés -> C / C ++ -> Génération de code -> RunTimeErrorCheck -> \ RTC

Essayez également de désactiver l’option d’optimisation, car rendre votre code plus rapide pourrait signifier ne pas pouvoir regarder les valeurs de vos variables locales:

Projet -> Propriétés -> C / C ++ -> Optimisation -> Désactivé

Je travaille sur une configuration de ‘Debug’ qui n’a aucun ensemble d’optimisation, alors je répète:

Utilisation de la compatibilité gérée: peut utiliser un point d’arrêt, mais ne peut pas regarder les valeurs

Ne pas utiliser la compatibilité gérée: impossible d’utiliser un point d’arrêt, mais peut regarder des valeurs

Par conséquent, l’utilisation de l’assertion comme point d’arrêt lorsque vous n’utilisez pas la compatibilité gérée vous permet à la fois de vous arrêter là où vous en avez besoin ET de surveiller les valeurs.

Essayez-le

Je vous ai fourni mon truc parce que je suis juste confronté au même problème en ce moment, 1w avant la livraison finale. Et MS fait semblant de planifier un correctif complet pour 2016 dans la mise à jour 2 est tout simplement insupportable.

BTW, cela rend une autre «pause» parfaite:

int * p = NULL, i = 1 / * p;

Kochise