log4cxx::Level::getError()是否泄漏内存
Does log4cxx::Level::getError() leak memory?
我在项目中使用log4cxx日志库和Valgrind内存分析器(在Qt Creator中)来检查内存泄漏。
在我看来,log4cxx::Level::getError()
和log4cxx::Level::getFatal()
泄漏了18个字节的内存。
以下是Valgrind倾卸场的相关部分:
18 bytes in 1 blocks are possibly lost in loss record 157 of 409 in OLogger::getLogLevel(char const*) in XXX/Infrastructure/Logging/OLogger.cpp:51
1: operator new(unsigned int) in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so
2: std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&) in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.19
3: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.19
4: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.19
5: log4cxx::Level::getError() in /usr/lib/liblog4cxx.so.10.0.0
6: OLogger::getLogLevel(char const*) in XXX/Infrastructure/Logging/OLogger.cpp:51
现在的问题是,库是否有意泄露视图位置中的内存VLD例如,过去在静态分配内存方面存在问题。也许日志记录系统希望尽可能长时间地保持活动状态,以报告导致内存泄漏的错误。这只是我的推测。。。
有人能证实泄漏吗?它是故意的吗?如果可能的话,我该怎么做才能将其移除?
谢谢:-)
根据apache.org上的简短讨论,在我的当前版本中存在泄漏(请参阅我的问题日志)。
泄漏需要进一步调查,例如,在log4cxx的开发分支中。
我把这个作为答案发布,因为我现在知道泄漏不是我造成的。
相关文章:
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 我是否生成线程并导致内存泄漏?
- 我的堆栈弹出式磁带的实现是否泄漏内存?
- 此函数是否会在C++中创建内存泄漏?
- 以下代码是否存在内存泄漏?
- 构造函数对象赋值是否泄漏内存
- 如果操作系统未清除内存泄漏,则在程序完成后内存泄漏是否仍然存在?
- 我的C++代码中是否有一些内存泄漏
- gpc服务器不会释放内存,是否存在内存泄漏?
- QabtractItemmodel :: Removerows是否会导致内存泄漏
- 这些场景中的任何一个是否会造成内存泄漏
- 以下代码中的嵌入"new"是否会导致内存泄漏?
- 新 X 在作为参数传递给函数时是否会导致 mem 泄漏
- 此函数是否泄漏内存
- 我的链表实现是否泄漏内存
- 此程序是否泄漏内存
- log4cxx::Level::getError()是否泄漏内存
- c++,是否泄漏?什么是可以做的
- 当使用new创建其构造函数抛出的对象时,是否泄漏构造对象
- 如何判断我是否泄漏了 COM 对象?