如何在 C++ 中枚举所有已分配的对象(由 new 运算符分配)(不仅是那些有自己的内存映射的对象,还有那些在堆上的对象?)?
我需要这个来查找内存泄漏。
平台:Linux、gcc、i386、AMD_K64(更好:平台无关)
可能没有正式的方法,但可能有一个精益的解决方法。例如,是否有一些您可以访问的内部变量?也许指向用于管理堆的列表的指针?
如何在 C++ 中枚举所有已分配的对象(由 new 运算符分配)(不仅是那些有自己的内存映射的对象,还有那些在堆上的对象?)?
我需要这个来查找内存泄漏。
平台:Linux、gcc、i386、AMD_K64(更好:平台无关)
可能没有正式的方法,但可能有一个精益的解决方法。例如,是否有一些您可以访问的内部变量?也许指向用于管理堆的列表的指针?
你总是可以使用 valgrind 来检查内存泄漏。要么用你的包管理器安装它,要么只下载和编译:http: //valgrind.org/
如果您在调试模式下编译应用程序,它可以精确定位到您分配了未释放/删除的资源的文件/行。
您可以使用valgrind它完全符合您的要求(用它自己的实现替换 malloc)并计算分配/释放
可能有两种形式的记忆丧失
我敢肯定还有更多的工具。这些很受欢迎。
在 Solaris 中,我建议使用 libumem 进行泄漏跟踪,并在 Sun 的 Studio 中进行分析器进行分析和内存分析。