Modifier & Continuer (C++)

Vous pouvez utiliser le Rechargement à chaud, précédemment appelé Modifier et Continuer, dans les projets C++. Voir Modifications de code prises en charge (C++) pour plus d’informations sur les limitations de Modifier et continuer.

Vous pouvez utiliser Modifier et continuer dans les projets C++. Voir Modifications de code prises en charge (C++) pour plus d’informations sur les limitations de Modifier et continuer.

L’option de compilateur /Zo (Améliorer le débogage optimisé) ajoute des informations aux fichiers de symbole (.pdb) pour les fichiers binaires compilés sans l’option /Od (Désactiver (Débogage)).

/Zo désactive Modifier et Continuer. Consultez Guide pratique pour déboguer le code optimisé.

Activer ou désactiver Modifier & Continuer

Vous pouvez désactiver l’appel automatique de Modifier & Continuer si vous apportez des modifications au code que vous ne souhaitez pas appliquer tout de suite, pendant la session de débogage en cours. Vous pouvez également réactiver la fonctionnalité automatique Modifier & Continuer.

Important

Pour obtenir les paramètres de build requis et d’autres informations sur la compatibilité des fonctionnalités, consultez Modifier et Continuer C++ dans Visual Studio 2015 Update 3.

  1. Si vous êtes dans une session de débogage, arrêtez le débogage (Maj + F5).

  2. Vous pouvez ouvrir Outils>Options>Débogage>Rechargement à chaud .NET/C++.

  3. Sélectionnez une ou les deux options suivantes pour activer Modifier et Continuer.

    • Activer le rechargement à chaud et Modifier et Continuer lors du débogage. Active le rechargement à chaud lors d’un démarrage avec le débogueur attaché (F5).

    • Activer le rechargement à chaud lors d’un démarrage sans débogage. Active le rechargement à chaud lors d’un démarrage sans le débogueur attaché (Ctrl+F5).

    La modification de ces paramètres affecte tous les projets sur lesquelles vous travaillez. Après avoir modifié un paramètre, il n'est pas nécessaire de régénérer l'application. Si vous générez l’application à partir de la ligne de commande ou d’un makefile, mais que vous effectuez le débogage dans l’environnement Visual Studio, vous pouvez continuer à utiliser Modifier & Continuer à condition de définir l’option /ZI.

  1. Si vous êtes dans une session de débogage, arrêtez le débogage (Maj + F5).

  2. Dans le menu Outils, choisissez Options.

  3. Dans la boîte de dialogue Options, sélectionnez Débogage > Général.

  4. Pour l’activer, sélectionnez Activer Modifier et Continuer. Pour la désactiver, désactivez la case à cocher.

  5. Dans le groupe Modifier & Continuer , cochez ou décochez la case Activer Modifier et Continuer natif .

    La modification de ce paramètre s’applique à tous vos projets actuels. Après avoir modifié ce paramètre, il n'est pas nécessaire de régénérer l'application. Si vous générez l’application à partir de la ligne de commande ou d’un makefile, mais que vous effectuez le débogage dans l’environnement Visual Studio, vous pouvez continuer à utiliser Modifier & Continuer à condition de définir l’option /ZI.

Appliquer des modifications du code explicitement

En C++, Modifier et Continuer peut appliquer des modifications de code de deux manières. Les modifications du code peuvent être implicitement appliquées, lorsque vous choisissez une commande d'exécution, ou explicitement, à l'aide de la commande Appliquer les modifications du code .

Quand vous appliquez des modifications du code de manière explicite, votre programme reste en mode arrêt - aucune exécution ne se produit.

  • Pour appliquer les modifications du code explicitement, dans le menu Déboguer , choisissez Appliquer les modifications du code.

Comment arrêter des modifications de code

Pendant que Modifier & Continuer est en train d'appliquer les modifications du code, vous pouvez arrêter l'opération.

Pour arrêter d'appliquer les modifications du code :

  • Dans le menu Déboguer , choisissez Cesser d'appliquer les modifications du code.

    Cet élément de menu est visible uniquement lorsque les modifications du code sont appliquées.

    Si vous choisissez cette option, aucune modification du code n'est validée.

Réinitialiser le point d'exécution

Certaines modifications du code peuvent entraîner le déplacement du point d'exécution vers un nouvel emplacement lorsque le mode Modifier & Continuer applique les modifications. Bien que Modifier & Continuer place le point d'exécution aussi précisément que possible, les résultats risquent d'être incorrects dans certains cas.

Dans C++, une boîte de dialogue vous informe du déplacement du point d’exécution. Vérifiez que le nouvel emplacement est correct avant de poursuivre le débogage. S'il ne l'est pas, utilisez la commande Définir l'instruction suivante . Pour plus d’informations, consultez Définir l’instruction suivante à exécuter.

Utiliser du code périmé

Dans certains cas, Modifier & Continuer n'applique pas immédiatement les modifications du code au fichier exécutable, mais peut éventuellement les appliquer ultérieurement si vous poursuivez le débogage. Cela arrive si vous modifiez une fonction qui appelle la fonction actuelle ou si vous ajoutez plus de 64 octets de nouvelles variables à une fonction sur la pile des appels.

Dans ces cas, le débogueur continue à exécuter le code d’origine jusqu’à ce que les modifications puissent être appliquées. Le code périmé apparaît comme une fenêtre de fichier source temporaire dans une fenêtre source séparée, avec un titre comme enc25.tmp. La source modifiée continue à apparaître dans la fenêtre source d'origine. Si vous essayez de modifier le code périmé, un message d'avertissement apparaît.