如何检测导致内存泄漏C++的线路的真实位置
How can i detect the real location of the line which cause the memory-Leak C++?
我有一个包含内存泄漏的C++应用程序,尽管我正在使用"Leakdiag"和"LDGrapher",但我无法泄漏在哪里?!我还使用"_CrtDumpMemoryLeaks();"函数,它给我这样的结果:
etected memory leaks!
Dumping objects ->
{657} normal block at 0x00D93B98, 52 bytes long.
Data: < N N > D8 4E D9 00 D8 4E D9 00 00 00 00 00 CD CD CD CD
{656} normal block at 0x00D93AF0, 108 bytes long.
Data: <( ; ( > 28 F0 12 00 00 00 00 00 98 3B D9 00 28 F0 12 00
{655} normal block at 0x00D94ED8, 52 bytes long.
Data: < ; ; > 98 3B D9 00 98 3B D9 00 CD CD CD CD CD CD CD CD
f:ddvctoolsvc7libsshipatlmfcsrcmfcocccont.cpp(923) : {641} normal block at 0x00D92100, 12 bytes long.
Data: < > F6 06 0A 00 00 00 00 00 00 00 00 00
我怎么知道内存泄漏的真正位置?
您可以重载全局 new 和 delete 运算符,每次使用 new 进行分配时,都将指针的地址与__LINE__
和__FILE__
信息一起存储在某个容器中。删除某些内容时,会将其从容器中删除。当应用程序退出时,转储容器的内容。然后,您将知道忘记解除分配哪些分配。您可以使用映射容器,其中内存地址作为键,文件和行信息作为值。
我认为这尽可能接近内存泄漏的真实位置。
相关文章:
- valgrind-hellgrind与泄漏检查的结果不同
- 从构造函数抛出异常时如何克服内存泄漏
- malloc() 可能出现内存泄漏
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 尽管遵循了规则,内存泄漏在哪里
- 为什么调用堆栈数组会导致内存泄漏
- 在简单示例中,Python3 + ctypes 回调会导致内存泄漏
- 使用模板类的自定义列表类型中的内存泄漏
- 为什么以下C++代码中存在内存泄漏?
- Klocwork Inside的资源泄漏
- OpenCV 我应该使用智能指针来防止内存泄漏吗?
- 我是否生成线程并导致内存泄漏?
- 多线程程序中出现意外的内存泄漏
- 为什么此函数会导致内存泄漏?
- 在 C++ 库中使用cythonized python时内存泄漏
- 需要帮助查找内存泄漏
- C++功能泄漏内存,我是C++新手,不确定如何解决
- 瓦尔格林德的内存泄漏使用新的
- CPP 中的瓦尔格林德和记忆泄漏:"Conditional jump or move depends on uninitialised values"
- 无法找出我的代码中的内存泄漏