2010-05-15 4 views
3

Просто любопытно, если меня зовут деструкторы.
(Специально для Visual Studio, когда вы нажмете на красную кнопку остановки)Развертывается ли стопка при прекращении отладки?

+2

Где в стандарте C++ указывается, как поставщики реализуют свое поведение отладки в IDE? –

+1

@Shaggy Frog: стандарт C++ не указывает ничего о отладке в IDE, и OP знает, что: «поскольку это не похоже на то, что было бы обозначено стандартом» – Dustin

ответ

5

Нет, процесс завершается в VS2005, VS2008 и VS2010 при нажатии на отладочную остановку.

Вы можете легко проверить это, создав деструктор, который что-то пишет в файл (и очищает вывод).

Я не уверен, какой стандарт вы имеете в виду, но нет стандарта, который бы определял это поведение.

+0

Итак, ресурсы никогда не выпускаются? Причина, по которой я спрашиваю, заключается в том, что меня попросили исправить некоторый код DirectX, который выдает * второе * время его запуска, если первый раз был остановлен в середине отладочной сессии. –

+2

@blueRaja: Windows освободит все выделенные дескрипторы памяти в куче и вернет любые незакрытые файлы при завершении процесса. Он может не делать этого немедленно, но обычно он делает это в течение нескольких секунд. Деструкторы не будут вызываться, хотя, если вы, например, пишете файл в деструкторе, то этого выхода не произойдет. Также есть некоторые ресурсы, которые окна не могут восстановить. –

 Смежные вопросы

  • Нет связанных вопросов^_^