Loupe

Visual Studio : “Impossible d’évaluer l’expression”

Dans de très rares cas, lors du debugging il nous est impossible d’évaluer les membres à portée de scope.

Capture 

Les symptômes :

  • Message d’erreur : “Impossible d’évaluer l’expression”
  • Multiplication des breakpoints

Ce bug semble provenir d’une nouvelle fonctionnalité introduite par Visual Studio 2013 permettant d’évaluer en direct les méthodes de notre application lors du debugging, pour plus de détails vous pouvez lire ce billet spécialement créé pour l’occasion.

Le bug étant très difficilement reproductible, il est difficile d’approfondir là cause de l’erreur.

 

La solution consiste à forcer l’utilisation de l’ancienne version du debugger (n’implémentant de ce fait pas les nouvelles fonctionnalités introduites par Visual Studio 2013) :

Il y a plusieurs façons d’y parvenir selon votre cas :

Dans les options

Outil –> Option –> Débogage –> Général  et cocher la dernière case : “Utiliser le mode de compatibilité managé

aaa

Modifier le Csproj

<PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <DebugEngines>{351668CC-8477-4fbf-BFE3-5F1006E4DB1F}</DebugEngines>
    <FileAlignment>512</FileAlignment>
</PropertyGroup> 

Projets EXE

Dans les propriété de l’exécutable, mettre la propriété “Utiliser le moteur managé hérité” à “Oui

bbbbbb

Lors de l’attachement à un processus

Déboguer –> Attacher au processus, sélectionner la version du framework adéquate dans la fenêtre “Sélectionner le type de code

bbbb

 

Ce “patch maison” fonctionne en attendant que ce petit bug sera résolu lors d’une prochaine mise à jour :)

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus