当前位置:  开发笔记 > 编程语言 > 正文

在C++中查找构造函数的调用者

如何解决《在C++中查找构造函数的调用者》经验,为你挑选了2个好方法。

寻找一种快速而又脏的方法来识别构造函数的调用者(或任何函数)我正在编写宏来帮助通过转储this指针来识别内存泄漏OutputDebugString.

知道调用ctor和dtor的位置有助于识别问题.

tnx\0



1> Motti..:

如果你正在使用visual studio,你可以附加调试器,而不是让断点有一个跟踪点.您可以通过右键单击断点并选择来完成此操作When Hit....然后选择打印包含堆栈跟踪的消息.此消息将发送到输出窗格,您可以随意分析所有呼叫.

命中点



2> Magnus Hoff..:

我能想到的最好方法是在调试器中运行程序并在构造函数中放置断点.接下来,检查调用堆栈.

如果要在一个特定类中定位一个特定分配,则可以保留分配计数并查看未释放的分配编号.再次运行程序,并打破正确的分配号码.


如果您需要将调用堆栈转储到日志中,我知道可以使用例如win32 API生成堆栈转储.更通用的方法是将显式调用堆栈保持为全局/线程特定状态,例如在std::vector-object中.(使用RAII确保每个push_back都伴随着a pop_back)

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有