log4cxx 在VS2008下报内存泄露
来源:互联网 发布:扣扣软件下载 编辑:程序博客网 时间:2024/06/18 14:47
前几下下载了log4cxx准备学习其使用,编译好log4cxx的DLL ,新建MFC工程使用,日志正常生成,OK,退出程序时VC显示有很多的内存泄露。
顿时觉得心一凉,这开源软件质量不至于这么差吧。。。随后查了查,查到有人说是误报。
于是: 1)加上visual leak detector (vld), vld并未提示有内存泄露,看来很有可能是误报了。
2)按下面第一篇文章的方法,跟了一下_CrtDumpMemoryLeaks, _DllMainCRTStartup上下断点,调试可发现log4cxx先于mfc90加载了,然后释放时先释放的mfc90,它在检查已分配内存链表时,把log4cxx中的还没释放的内存误报了。
详见下面这篇文章。
顿时觉得心一凉,这开源软件质量不至于这么差吧。。。随后查了查,查到有人说是误报。
于是: 1)加上visual leak detector (vld), vld并未提示有内存泄露,看来很有可能是误报了。
2)按下面第一篇文章的方法,跟了一下_CrtDumpMemoryLeaks, _DllMainCRTStartup上下断点,调试可发现log4cxx先于mfc90加载了,然后释放时先释放的mfc90,它在检查已分配内存链表时,把log4cxx中的还没释放的内存误报了。
详见下面这篇文章。
http://blog.sina.com.cn/s/blog_68357baf0100ujxx.html
另外两个文章
另外两个文章
http://blog.csdn.net/clever101/article/details/7926541
http://www.vis-sim.com/3dsceneBB/viewtopic.php?t=1027
解决办法: 证明为误报后就简单了,可以直接把log4cxx编译为release使用即可。
若还是觉得不爽,非要用debug的log4cxx,在stdafx.h中加入#pragma comment(lib, "log4cxx.lib") 在工程属性中的link->Input->Additional Dependencies中删掉log4cxx.lib项, 则可使mfc90加载释放顺序正常,从而VC不再误报内存泄露。
PS:自己也写弄了个小程序演示此种mfc使用win32 dll的情况,发现一个有意思的事情,定义的string内字符数要不小于16才会显示误报情况,原因不明,望高手指点。
解决办法: 证明为误报后就简单了,可以直接把log4cxx编译为release使用即可。
若还是觉得不爽,非要用debug的log4cxx,在stdafx.h中加入#pragma comment(lib, "log4cxx.lib") 在工程属性中的link->Input->Additional Dependencies中删掉log4cxx.lib项, 则可使mfc90加载释放顺序正常,从而VC不再误报内存泄露。
PS:自己也写弄了个小程序演示此种mfc使用win32 dll的情况,发现一个有意思的事情,定义的string内字符数要不小于16才会显示误报情况,原因不明,望高手指点。
演示程序地址http://download.csdn.net/detail/nwao7890/6477591
0 0
- log4cxx 在VS2008下报内存泄露
- 在vs2008中检查MFC内存泄露
- VS2008内存泄露检测
- VS2008内存泄露检测
- VS2008内存泄露检测
- VS2008内存泄露检测
- VS2008内存泄露检测 .
- VS2008内存泄露检测
- VS2008检测内存泄露
- vs2008下的MFC程序,怎么检测内存泄露
- Memory Leak Detection:在VS2008中检查内存泄露
- 在MFC框架下使用osg报内存泄露的解决办法
- 在MFC框架下使用osg报内存泄露的解决办法
- VS2008中捕获内存泄露
- VS2008中捕获内存泄露
- VS2008中捕获内存泄露
- VS2008中捕获内存泄露
- 转:VS2008内存泄露检测
- dmesg七种用法
- 实现网页方式的即时消息通信
- 'sheet1$' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。
- DatabaseHelper
- hdu acm做题的总结
- log4cxx 在VS2008下报内存泄露
- 多连块拼图
- 代码检查、走查与评审
- Panda(线段树)
- message sent to deallocated instance 0x100202dc0
- csu1307_City Tour
- hdu 2069 Coin Change
- 6.3.2 Girls and Boys
- Java7语法新特性--switch使用字符串