首页 > TAG信息列表 > stack-unwinding
c – 为什么malloc / new会捕获callstack?
我有一个64位应用程序,在Server 2003下作为服务运行. 当我连接VS Profiler或windbg时,我看到很多像下面那样的callstack.我知道在调试器(或分析器)中产生的进程使用调试堆等…但事实并非如此,因为该服务是由OS启动的,我只附加到它. 我不明白它为什么要展开堆栈.分析器显示花费了大c – 堆栈展开时使用RAII是否安全?
class AutoSomething { public: AutoSomething(Object& ob) : object_(object) {} ~AutoSomething() { object_.some_callback(); } private: Object& object_; }; ......... void Object::some_function() { AutoSoc – 停止调试时堆栈是否已解除?
如果我的析构函数被调用,那就好奇了. (特别是对于Visual Studio,当您点击红色停止按钮时)解决方法:按停止调试时,VS2005,VS2008和VS2010中没有终止进程. 您可以通过创建一个将某些内容写入文件的析构函数(并刷新输出)来轻松地检查这一点. 我不确定你的标准是什么,但没有标准可以定