Notons que si vous avez mis à jour Visual Studio 2015 (par exemple si vous êtes passé de la version RC à la version RTM), cette fonctionnalité ne sera pas activée par défaut. Vous aurez alors quelques paramètres à vérifier afin que ce soit le cas :
- Assurez-vous que le Debug Information Format soit réglé sur « Program Database for Edit and Continue (/ZI) » : si cette option n’est pas réglée correctement, le débogueur ne va pas prendre la modification en considération. Vous continuerez alors à modifier vos fichiers sans avoir activé la fonctionnalité EnC.
Si vous effectuez une modification dans un binaire non compilé avec cette option, le débogueur va ignorer la modification et vous verrez un message d'erreur lorsque vous continuerez l’exécution vous indiquant que le fichier source a changé et qu'il ne correspond plus à la version du fichier utilisé pour construire l'application en cours de débogage. - Enable Incremental Linking doit être réglé sur « Yes (/INCREMENTAL) »
Si cette fonctionnalité n’est pas paramétrée correctement et que vous essayez de faire une modification pendant le débogage, vous verrez un message d’erreur relative à Edit and Continue qui vous signalera l’échec d’une correspondance mémoire pour la modification sur le processus de débogage. - Enable Edit and Continue doit être activé dans Debug -> Options : si cette fonctionnalité doit être activée par défaut dans Virtual Studio 2015 RTM, il faudrait penser à vérifier tout de même dans le cas où Edit and Continue ne fonctionne pas.
Une fois que ces trois vérifications sont faites, vous devriez être en mesure d’utiliser Edit and Continue pour vos projets x86 ou x64. Microsoft donne quand même une série de limitations connues :
- Édition des binaires compilés avec / bigobj (il est utilisé par exemple pour les applications de Windows Store) : si vous essayez de faire une modification dans un binaire compilé avec / bigobj vous recevrez un message d'erreur indiquant que « des modifications sont apportées qui ne peuvent pas être compilées » (la fenêtre d’erreur contiendra le message d'erreur « cl : Command line error D8016 : '/bigobj' and '/ZX' command-line options are incompatible »). Vous aurez alors la possibilité de revenir en arrière et modifier manuellement le fichier, ignorer ou avoir recourt à la fonction undo de Visual Studio pour toutes vos modifications. Microsoft envisage de corriger ce problème dans une prochaine mise à jour de Visual Studio 2015.
- Édition des binaires liés avec l’information de débogage / DEBUG:FASTLINK : si vous essayez de faire une modification dans un binaire compilé avec cela, vous recevrez un message d'erreur vous indiquant qu’Edit and Continue n’est pas pris en charge pour ce binaire et qui vous proposera d’utiliser / DEBUG à la place. Microsoft envisage de corriger ce problème dans une prochaine mise à jour de Visual Studio 2015.
- Les binaires supportent un nombre limité d’éditions : afin de supporter Edit and Continue, le compilateur réserve un espace vide dans le binaire qui met le code à jour lorsque des modifications sont apportées (c’est l'option / ZI qui demande au compilateur de le faire). Cela signifie qu'il est possible de remplir l'espace réservé après plusieurs modifications (l'espace utilisé par chaque modification dépendra de la portée et l'ampleur de l'édition, il n’est pas tributaire en réalité d’un nombre prédéterminé de modifications supportées). Si vous manquez d'espace de réserve dans le binaire, vous verrez un message d'erreur qui vous indiquera qu’il n’y a plus d’espace dans le module. Microsoft envisage d'ajouter la possibilité pour vous d'augmenter l'espace réservé si nécessaire dans une future mise à jour de Visual Studio 2015.
- Edit and Continue n’est pas compatible avec le code optimisé, ne supporte pas l’ajout ou la modification de variables globales ou statiques ni l’édition de binaires liés à Safe Structured Exception Handlers (/SAFESEH).
Source : blog MSDN