Symbian下如何检测内存泄露.doc_第1页
Symbian下如何检测内存泄露.doc_第2页
Symbian下如何检测内存泄露.doc_第3页
Symbian下如何检测内存泄露.doc_第4页
Symbian下如何检测内存泄露.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Symbian下如何检测内存泄露作者项目组案例来源C+关键词Symbian C+1、 现象、问题描述在Symbian平台下开发应用程序时,内存的管理和维护显得更加严格,因为对于内存受限系统(Symbian OS)来说,内存显得更加宝贵,手机操作系统(Symbian OS)的设计就是要让用户运行一年半载不出问题的目的,不能因为某一第三方应用程序的内存泄漏导致系统瘫痪重起,这是不能接受的,哪怕你的应用程序泄漏了一个字节。但如果单凭开发或测试人员的手工检查程序中的内存泄漏是不现实的,所有有了工具HookLogger。2、 关键过程、根本原因分析HookLogger是基于Windows界面的内存泄露检测工具,下面主要介绍使用HookLogger检测在模拟器下的内存泄露,主要步骤如下:1)HookLogger的安装你可以/main/tools/devtools/code/index.jsp下载这个工具,也可以直接使用,直接点击安装即可。(推荐按照默认的路径进行安装)2)HookLogger配置首先你需要确认当前你工作的SDK目录,比如现在我们用的3Rd Edition的版本,其目录如下:Symbian9.1S60_3rd,然后你打开命令行程序,输入HookEUSER winscw(在Symbian 7.0s以及以前的版本输入HookEUSER wins),这样将修改模拟器版本下的euser.dll文件,从而我们可以使用该工具检测内存泄露。输入HookEUSER winscw命令的时候,可能产生如下的错误Failed setting cwd to epoc32/release/winscw/udeb at C:SymbianHookLoggerHookEUSER.pl line 54.主要的原因是你配置的环境变量不对,你可以按照如下的方式进行设置:如果你的Symbian SDK不是安装在C盘的下,你就要进行如下的修改,在C:Program FilesCommon FilesSymbiantools目录下,打开HookEUSER.pl,将54行修改如下my $path = D:/Symbian/9.1/S60_3rd/Epoc32/release/winscw/udeb;用绝对路径即可。修改后再次输入HookEUSER winscw你可能出现如下的错误:The system cannot find the file specified.Failed running copy C:Program FilesCommon FilesSymbianToolsEUserParasite_eka1.dll at C:Program FilesCommon FilesSymbianToolsHookEUSER.pl line 76.你需要作如下的修改:找到74行将my $cmd = copy $hooks_src;修改为my $cmd = copy $hooks_src;并且将77行修改如下:$cmd = $Bin/AttachDll $euser $hooks $hooked_euser;然后再次HookEUSER winscw,提示信息如下:Target path is /Symbian/9.1/S60_3rd_MR/epoc32/release/winscw/UDEB 1 file(s) copied.Modified euser.dll to hook EUserParasite_eka2.dll, original is euser.orig.dll.Run HookEUSER with -r to restore表示HookLogger工具配置成功。3)HookLogger的使用在启动模拟器之前,打开HookLogger,Threads显示当前所有的线程。然后点击一个存在内存泄露的程序,该程序退出的时候,告诉内存泄露的地址,如图:22082f140就是当前程序存在内存泄露的地址,我们点击HookLogger的Heap标签,点击list all allocs的按钮,显示如下:红色部分就表示当前内存泄露的地址,双击该列,显示如下:这样我们就可以通过这些信息分析出内存泄露的原因,这样在该类的析够释放这些内存即可。3、 结论、解决方案及效果使用该工具,能有效地找出深层次的内存泄漏问题,尤其是当项目规模较大时,使用该工具非常高效,用了都说喜欢!4、 经验总结、预防措施和规范建议使用该工具时,仔细分析出错报告,一来方便定位问题,二来对自己的C+编码能力和对底层编译机制的理解有很大的帮助。使用该工具时要具备以下两点:1、首先你应该是一个C+高级用户,因为这样你才有机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论