现在的位置: 首页 > 综合 > 正文

检查Windows mobile程式的内存泄露

2013年10月27日 ⁄ 综合 ⁄ 共 740字 ⁄ 字号 评论关闭

首先, 我们要下载工具最新的官方介绍文档在这个地址:

http://windowsteamblog.com/blogs/windowsphone/archive/2009/07/26/windows-mobile-application-verifier.aspx

 

1. 安装:

安装好Application Verifier之后, 在它的根目录下有个Armv4i文件夹, 将此文件夹复制到手机端的my document目录下, 然后使用shimexp.exe加载shimeng.dll, 之后就可以正常使用AppVerif.exe.

2.开始测试:

然后将程序的.exe文件也拷贝到my document下面, 同时把map文件放到windows 目录下面(为了在生成的log里面显示函数调用关系). 然后打开AppVerif.exe, 运行要测试的程序, 按照test case做测试就行了. 测试完毕后, 在手机根目录下面会产生log文件, 拷贝出来, 使用avlogview.exe来查看log. 如果log文件正常, 则会有清晰的内存泄露的函数调用关系, 如果log不正常, 则不会出现函数调用关系, 这个时候就需要我们手动修改一下log文件.

打开log文件会看到很多??!(NULL)的字符, 把??替换成你的程序名字比如xx.exe就可以了. 为什么有??这个字符? 那是因为在执行内存测试的时候, 测试程序没有找到匹配的map文件.

3.分析log:

我们打开正常的log以后, 会看到类似于: fun() + 4af之类的函数调用地址, 这个时候就要从cod文件里面找具体的事发地点了.

+ 后面的4af就是cod里面事发地址相对于fun()函数的位置, 很容易找到, 因此就可以判断内存泄露的原因.

 

以上是基本的操作步骤, 实际的情况要复杂一些.

 

抱歉!评论已关闭.