1、 首先,有哪些工具可以发现存在内存泄漏
vs2008 自带的远程工具Performance Monitor ,打开的时候提示选择wince 模拟器或真机,点确定后开始自动连接,如果连接成功在左边分别选择 进程,进程名称,堆内存,这样就可以查看是否存在内存泄漏了。如果对内存一直增加肯定有内存泄漏。
codesnitch 也可以,具体看网上介绍
Application Verifier ,需要先连接wince设备,Add进程,然后启动进程。运行的时候会生成一个文件。具体怎么用这里就不介绍了。
2、怎么查内存泄漏,怎么定位到具体的文件具体的行
估计最好的办法就是重载new ,delete,malloc,free等等函数了。这就是crtdbg4wince 的用处了。
注意几点:
1、所有的源文件包含路径的最后增加mm_Crtdbg.h ,不要在其他头文件之前包含,也最好不要在头文件里包含,可能会导致一些文件编译不过
2、最好把mm_Crtdbg.cpp 单独编译成dll,然后再放进要测试的工程里,如果把mm_Crtdbg.cpp源码和测试工程一起也可以。
3、使用方法参照例子,基本跟mfc用法一样,而且有扩展的