停止调试时堆栈是否已解除?

Blu*_*eft 3 c++ standards destructor stack-unwinding visual-studio

如果我的析构函数被调用,那就好奇了.
(特别是对于Visual Studio,当您点击红色停止按钮时)

Bri*_*ndy 5

按停止调试时,VS2005,VS2008和VS2010中没有终止进程.

您可以通过创建一个将某些内容写入文件的析构函数(并刷新输出)来轻松地检查这一点.

我不确定你的标准是什么,但没有标准可以定义这种行为.

  • @blueRaja:Windows将释放堆上任何已分配的内存句柄,并在进程终止时回收任何未关闭的文件句柄.它可能不会立即执行,但通常会在几秒钟内完成.虽然不会调用析构函数,因此如果您在析构函数中写入文件,则不会发生此输出.也有一些窗口无法回收的资源. (2认同)