Просто любопытно, если меня зовут деструкторы.
(Специально для Visual Studio, когда вы нажмете на красную кнопку остановки)Развертывается ли стопка при прекращении отладки?
ответ
Нет, процесс завершается в VS2005, VS2008 и VS2010 при нажатии на отладочную остановку.
Вы можете легко проверить это, создав деструктор, который что-то пишет в файл (и очищает вывод).
Я не уверен, какой стандарт вы имеете в виду, но нет стандарта, который бы определял это поведение.
Итак, ресурсы никогда не выпускаются? Причина, по которой я спрашиваю, заключается в том, что меня попросили исправить некоторый код DirectX, который выдает * второе * время его запуска, если первый раз был остановлен в середине отладочной сессии. –
@blueRaja: Windows освободит все выделенные дескрипторы памяти в куче и вернет любые незакрытые файлы при завершении процесса. Он может не делать этого немедленно, но обычно он делает это в течение нескольких секунд. Деструкторы не будут вызываться, хотя, если вы, например, пишете файл в деструкторе, то этого выхода не произойдет. Также есть некоторые ресурсы, которые окна не могут восстановить. –
~~~~~~~~~~~
Nope.
~~~~~~~~~~~
Где в стандарте C++ указывается, как поставщики реализуют свое поведение отладки в IDE? –
@Shaggy Frog: стандарт C++ не указывает ничего о отладке в IDE, и OP знает, что: «поскольку это не похоже на то, что было бы обозначено стандартом» – Dustin