Juste curieux si mes destructeurs sont appelés.
(Plus précisément pour Visual Studio, lorsque vous appuyez sur le bouton arrêt rouge)La pile est-elle déroulée lorsque vous arrêtez le débogage?
Répondre
Aucun processus n'est terminé dans VS2005, VS2008 et VS2010 lorsque vous appuyez sur arrêter le débogage.
Vous pouvez facilement vérifier cela en créant un destructeur qui écrit quelque chose dans un fichier (et vide la sortie).
Je ne suis pas sûr de ce que vous voulez dire, mais il n'y a pas de norme qui définirait ce comportement.
Alors, les ressources ne sont jamais libérées? La raison pour laquelle je demande est que l'on m'a demandé de réparer un code DirectX qui bloque le * second * temps où il est exécuté, si la première fois a été arrêté à mi-session de débogage. –
@blueRaja: Windows libère les poignées de mémoire allouées sur le tas et récupère les poignées de fichier non fermées à la fin du processus. Il ne peut pas le faire immédiatement, mais il le fait généralement en quelques secondes. Les destructeurs ne seront pas appelés, donc si vous écrivez par exemple dans un fichier dans un destructeur, cette sortie ne se produira pas. En outre, il existe probablement des ressources que les fenêtres ne peuvent pas récupérer. –
~~~~~~~~~~~
Non.
~~~~~~~~~~~
Où dans la norme C++ spécifie-t-elle comment les fournisseurs implémentent leur comportement de débogage dans les EDI? –
@Shaggy Frog: La norme C++ ne spécifie rien sur le débogage dans les IDE, et l'OP sait que: "puisque cela ne semble pas être quelque chose qui serait désigné par le standard" – Dustin