AppVerifier的使用2-log文件的分析
来源:互联网 发布:做证券软件测试 编辑:程序博客网 时间:2024/05/27 06:56
上一篇说到怎么用avlogview.exe打开Appverify.exe的文件。下面是我的截图。
这里callstack的顺序是从下到上看的。这里有几个没有文件名和函数名的调用,不过没关系,根据函数从下到上的调用顺序,我们看最上面的那排。 打开我们上一篇中生成的程序的map文件。
在这里分别比较前面三个函数的地址。比较verifier log文件中第一个地址是1129ch.从上到下,最后一个比1129c小的是11268.那么就是函数WinMainCRTStartup函数,即启动函数。分别比较这三个,我们就知道,是winWmainCRTStartup->WinMain->testmemoryleak。不过我用的时候只用找最后一个函数起始地址。即testmemoryleak的地址是1116c.那么指令相对于函数起始地址为111ac-1116c=40. (十六进制)。 它所对应的目录文件为 code.obj.
而obj是一个二进制文件,我们需要借助于生成程序和汇编指令的cod文件来找到源文件发生错误的地址。生成这个文件的方式是在工程中设置,property->configuration properties->c/c++->output Files->Assembler Output,选择要生成的为Assembly, Machine Code and Source (/FAcs)。之后,只用编译文件就可以生成。
打开这个文件,找到它对应的源文件。为code.cpp。但一般不用,因为xx.cod就是由xx.cpp生成的。
再找到testmemoryleak函数。函数下面的指令地址是相对于函数起始地址。前面已经找到指令的地址是40,那么找到这个函数指令中地址为40的指令。可以看到它是new int[10]生成的。前面的号就是源文件的第几行。这里它是第7行。
这样,我们再打开,code.cpp, 找到第7号。
这样,我们就找到了内存泄漏的地方了。
- AppVerifier的使用2-log文件的分析
- AppVerifier的使用1-生成log文件
- Android的log文件分析
- 原创: WINCE 内存泄露的检查(2) 使用Application Verifier (AppVerifier)检查资源泄漏
- AppVerifier的功能和原理
- 使用appverifier
- Android Log日志文件的分析、查看
- LeakDiag的使用和形成的LOG文件的分析方法
- LeakDiag的使用和形成的LOG文件的分析方法
- LeakDiag的使用和形成的LOG文件的分析方法(1)
- 使用 pgfouine 分析 postgresql的log
- 使用脚本清除/var/log下的log文件
- android Log 的分析
- Yii的log分析
- Yii的log分析
- Yii的log分析
- Wifi 的Log分析
- Android的Log分析
- 小学数学学习的思想方法
- inline-block问题
- IE6 bug总结
- Nagios 使用回忆录 - 编译
- ADO.net 中数据库连接方式
- AppVerifier的使用2-log文件的分析
- aspnetdb.mdf数据字典
- ASPNETDB 存储过程: 成员资格管理部分
- 不玩mootools了
- Oracle数据库中fast刷新会受到哪些限制
- sql查询的行列转换
- 改变IT世界的11大Apache开源技术
- 我的C++实践(13):多态化的构造函数和非成员函数
- LNK2005:symbol already defined和LNK1169:one or more multiply defined symbols found 解决办法