Windows CE 内存泄漏的检测和防止
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows Embedded从入门到精通系列课程WinCE内存泄漏的检测和防范
黄文中
WinCE/XPE培训讲师eMVP
Wi CE/XPE MVP
研博科技有限公司
/
本次课程内容包括
收听本次课程需具备的条件
Level 200
涉及的问题
WinCE特有的
•答案一:没有像台式机的自动回收,只有当内存不够时才回收低优先级的线程堆和栈.主要由用户自己处理内存CF除外.
先级的线程堆和栈主要由用户自己处理内存N CF除外
•答案二:首先分配和释放应当对称,顺序是按栈式分配和释放(即按1-2-3顺序分配,3-2-1顺序释放),可以避免内存碎片的产生.
按123顺序分配321顺序释放)可以避免内存碎片的产生
•答案三:如果无法按栈式分配和释放,产生了内存碎片.只要每次分配都是固定一样的大小在分配和释放总数相等时内存最大需分配都是固定一样的大小,在分配和释放总数相等时,内存最大需求量不会增长,因为碎片的大小正是要分配的大小,可以再利用.
•问题四:如何判断是否有内存泄漏?
•
问题内存泄漏检测具的般做什么作•问题五:内存泄漏检测工具的一般做什么工作?
•
•问题六:哪些API函数与内存泄漏有关,需要监控?
•问题七:如何定位模块代码中内存泄漏的错误行?
•
•问题八:举例哪些工具可以用来查找和定位内存泄漏?
•
•问题九: 内存泄漏在什么情况下是致命危险的?
问题九内存泄漏在什么情况下是致命危险的?
Agenda
¾内存分配机制
¾因为API是唯一的调用接口,监控API调用是解决问题的
关键
内存分配机制
WinCE的微内核框架
WinCE 6.0
框架
WinCE的微内核框架
WinCE 5.0
框架
系统运行机制
内存相关的API函数
Agenda
¾各种内存工具的工作原理
¾Tag和Log,加Symbol和各种API使用规则和规范Log
如何监视API调用•WinCE系统提供了相关功能.即可以
系提供功
•截获内存相关API函数,在进入内核的API实现之前,一般再做以下两件事:
由组Shim_XXX.DLL完成,分别截获•(3),由一组Shim XXX.DLL分别截获一组的API
Agenda
¾有无内存泄漏的判定¾Tag, Log的使用
内存泄漏的定义
.
有无内存泄漏的判定
有无内存判定
•Demo:
如何加入(Tag)?
•例如一:
•例如二:
•例如三:
•
Agenda
¾定位内存泄漏的代码¾Symbol文件和调用堆栈Log
定位内存泄漏的代码
Agenda
¾防范内存泄漏的编程指引¾死循环和WinCE特征
死循环
Wi CE
WinCE特性
.
Agenda
D i A li ti D
¾Driver及Application测漏实例Demo
•1427320 PID:a5d8d932 TID:a5ea5f62 0x85a7ec7c: app2_2a block 1 (2 bytes) at 00030060h
•1427360 PID:a5d8d932 TID:a5ea5f62 0x85a7ec7c: app2_2a block 4 (2 bytes) at 000300A0h
00030060h 00030060h
建立Application Verifier环境pp
a e e e ba o MakeVerifier.bat For Dll
被勾住的API函数
TAG
avlogview.exe
Embedded系列课程预告
嵌入式开发资源•Windows Embedded中文官方网站
•.NET Micro Framework
•Microsoft Robotics Studio
•微软嵌入式开发者论坛
•微软中国嵌入式开发者博客
•Mike Hall的博客
Mike Hall
微软启动新轮免费重考计划微软启动新一轮“免费重考计划”
微软启动新轮免费重考计划微软启动新一轮“免费重考计划”
获取更多MSDN资源
•MSDN中文网站
•MSDN中文网络广播
•MSDN免费中文速递邮件(MSDN Flash) •MSDN开发中心
•MSDN图书中心
forums microsoft com/china
/china
本周活动更新:
本周活动更新
9Top 10 论坛英雄!
9畅谈我的2007
畅谈我的
如需提出问题,请在此区域输入文字,并单击“问题和解答”右上方的“提问”按钮即可。
http://forums microsoft com/china
/china