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