首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C++中避免下面的purify检测到的内存泄漏?

如何在C++中避免下面的purify检测到的内存泄漏?
EN

Stack Overflow用户
提问于 2010-04-23 14:21:41
回答 1查看 830关注 0票数 0

我得到以下内存字符串可能是由std::leak.Its引起的。我怎么才能避免呢?

代码语言:javascript
复制
PLK: 23 bytes potentially leaked at 0xeb68278

  * Suppressed in /vobs/ubtssw_brrm/test/testcases/.purify [line 3]

  * This memory was allocated from:

        malloc         [/vobs/ubtssw_brrm/test/test_build/linux-x86/rtlib.o]

        operator new(unsigned) [/vobs/MontaVista/Linux/montavista/pro/devkit/x86/586/target/usr/lib/libstdc++.so.6]

        operator new(unsigned) [/vobs/ubtssw_brrm/test/test_build/linux-x86/rtlib.o]

        std::string<char, std::char_traits<char>, std::allocator<char>>::_Rep::_S_create(unsigned, unsigned, std::allocator<char> const&) [/vobs/MontaVista/Linux/montavista/pro/devkit/

x86/586/target/usr/lib/libstdc++.so.6]

        std::string<char, std::char_traits<char>, std::allocator<char>>::_Rep::_M_clone(std::allocator<char> const&, unsigned) [/vobs/MontaVista/Linux/montavista/pro/devkit/x86/586/tar

get/usr/lib/libstdc++.so.6]

        std::string<char, std::char_traits<char>, std::allocator<char>>::string<char, std::char_traits<char>, std::allocator<char>>(std::string<char, std::char_traits<char>, std::alloc

ator<char>> const&) [/vobs/MontaVista/Linux/montavista/pro/devkit/x86/586/target/usr/lib/libstdc++.so.6]

        uec_UEDir::getEntryToUpdateAfterInsertion(rcapi_ImsiGsmMap const&, rcapi_ImsiGsmMap&, std::_Rb_tree_iterator<std::pair<std::string<char, std::char_traits<char>, std::allocator<

char>> const, UEDirData >>&) [/vobs/ubtssw_brrm/uectrl/linux-x86/../src/uec_UEDir.cc:2278]

        uec_UEDir::addUpdate(rcapi_ImsiGsmMap const&, LocalUEDirInfo&, rcapi_ImsiGsmMap&, int, unsigned char) [/vobs/ubtssw_brrm/uectrl/linux-x86/../src/uec_UEDir.cc:282]

        ucx_UEDirHandler::addUpdateUEDir(rcapi_ImsiGsmMap, UEDirUpdateType, acap_PresenceEvent) [/vobs/ubtssw_brrm/ucx/linux-x86/../src/ucx_UEDirHandler.cc:374]
EN

回答 1

Stack Overflow用户

发布于 2010-04-27 21:49:48

我曾经有一个案例,Valgrind指出我在std::string中有泄漏,但我看不出是如何泄漏的。事实证明,我泄漏了另一个通过值保存字符串的对象,但Valgrind也正确地捕获了泄漏的字符串内存(这是泄漏的绝大多数内存)。我怀疑uec_UEDir没有正确地管理它的字符串,或者它自己被泄露了。实际上,我最终通过非常仔细的代码检查找到了我的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2696620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档