RT系统代码量有点大(含30多个类),
vs2008开发环境,
纯C/C++的(即不含MFC、数据库之类的);只有三分之一的代码是我自己写
现在的任务是要排查代码是否存在内存泄露,
本人菜鸟,请各位支点招(推荐一些工具或方法或建议)非常感谢!!!
vs2008开发环境,
纯C/C++的(即不含MFC、数据库之类的);只有三分之一的代码是我自己写
现在的任务是要排查代码是否存在内存泄露,
本人菜鸟,请各位支点招(推荐一些工具或方法或建议)非常感谢!!!
解决方案 »
- WEB Browser控件边框如何去掉?
- vc 如何判断文件夹下文件夹(一级子目录)的数量
- vc程序不断改变access数据库表上的时间字段的值
- 求好用的RSA类!!!要VC或者C++代码的,谢谢!
- 请问各位朋友,在C++中如何实现复数数组?
- CDC::SelectObject()选入设备的位图放在什么坐标位置?为何其不受OffsetViewportOrg()的影响而一起偏移?
- 串口接收数据并保存
- 大虾求救
- 老板要我比较vc和vb的性能,主要要证明vc好,大虾给点意见
- 我在win2000用isapi的*pCtxt << _T("")输出到html为什么到8k就不能输了?
- 高手看看这种新型的手机销售利用什么原理?
- 使用win32 api如何实现,在窗口中的一个文本,然后双击进入可编辑状态
很多类似的工具 检测内存泄露
这个工具不错的
{
Sleep(10000); // 用API GlobalMemoryStatus 记录内存状态
}这样,通过查看记录,就可以知道是否存在内存泄露,如果发现了,就屏蔽一些代码 ,再测试,如此反复,就可以了
IDE给的信息不够用么
Visual Leak Detector已经试用过,确实如你所说,好像只对很小的程序比较管用
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
然和在一些地方加
_CrtDumpMemoryLeaks();但是好像得到的信息有限,下面是我写的一个测试程序
void ff()
{
int *p = new int[512];
}
int _tmain(int argc, _TCHAR* argv[])
{
for (int i = 0; i < 1; i++)
{
ff();
printf("succes!/n");
} _CrtDumpMemoryLeaks(); return 0;
}
output窗口里显示的
'test.exe': Loaded 'E:\charRecognition\test\Debug\test.exe', Symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll'
'test.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll'
'test.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\msvcr90d.dll', Symbols loaded.
Detected memory leaks!
Dumping objects ->
{96} normal block at 0x00399220, 2048 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
Object dump complete.
The program '[5320] test.exe: Native' has exited with code 0 (0x0).只知道有内存泄露,根本就不晓得哪里有泄漏
直接关闭程序就有提示???
好像没看到有提示啊。。请教该怎么看?
所说的IDE是指集成开发环境么??我用VS2008的话,请教如何使用vc+ IDE查看是否存在内存泄露???本人菜鸟,求指教!
boundcheck
Visual Leak Checker
控制台程序的话,木有看到提示。貌似MFC的话,可以看到
2010应该没有变化,内部还是调用CRT内存泄漏检测函数。看看这个:http://msdn.microsoft.com/en-us/library/x98tx3cf.aspx和这个:http://msdn.microsoft.com/en-us/library/c99kz476.aspx