欢迎来到天天文库
浏览记录
ID:36787824
大小:1.77 MB
页数:77页
时间:2019-05-15
《嵌入式linux系统中的内存泄漏的研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、摘要计算机系统中,操作系统对内存的管理是十分重要的,内存管理也是操作系统中最复杂的一部分。在linux系统中,用户程序对内存的使用需要操作系统对内存管理的支持和libc库的支持,程序中的内存泄漏将对整个系统产生严重影晌,甚至整个系统崩溃。本课题首先讲解了ann核处理器,为了得到调用动念内存管理函数的返回地址,并且将其对应到源代码的语句行号,分析了arm。linux的堆栈、linux的内存管理以及虚拟存储管理机制。然后课题从用户进程对内存使用的申请和释放操作入手,把内存泄漏检测的问题分为宏观检测和微观检测两部分。这两部分具有相对的独立性,微观检测可以捕捉到一个进程泄漏的内存地址、泄
2、漏的内存块大小、释放的空指针、释放的野指针以及代码段的调用地址;宏观检测根据用户定义的最大内存值和当前进程占用的内存大小相比较,来判断一个进程是否有内存泄漏。微观检测捕捉到进程进行内存分配与释放的行为,通过编译生成一个新的动态库来替换glibc中的用户空间内存管理函数,这个过程仅仅是替换,真『F的内存分配与释放仍然需要调用glibc中的动态内存管理函数。本课题对嵌入式linux系统中内存泄漏检测分析工具应用在调试阶段进行改进,在检测分析效率上进行提高。论文的主要研究工作包括:[1]研究memwatch,ccmalloc,dmalloc内存检测分析工具。[2]通过优先加载动态库的方
3、案,来截获用户对内存的使用。[3]把发生内存泄漏的地方定位到源代码的语句行号。关键词:内存泄漏ARM动态库堆栈glJbcAbstractIncomputersystem,memoIymanagement1Sveryimportantforoperationsystem,anditismostcomplexpartincomputeroperationsystem.Forlinuxoperationsystem,userprogramusesmemorybyGNUdynamicsharedlibraryprovidingfunctionscallandoperationsystem
4、supporting.Ifmemoryleaktakesplaceinprogranawhenit’srunning.itwillcauseveryseriousaffection.evenwillcausesystemcrash.ThissubjectfirstintroducessomeinformationaboutARMCPU.Inordertogetthereturnaddressofthedynamicmemorymanagementfunctioncall。itanalyzesarm.1inuxstackandstackframe,andthenanalyzesme
5、morymanagementandvirtualmemorymanagementmechanismaboutlinuxoperationsystem.andstartingwiththeoperationwhichuserprogramallocateandfreememory.Itdecomposesthememoryleakdetectionintotwoparts.Oneismicrocosmicdetect.anOtherissubjectdetect.Microcosmicdetectcarlcaptureparticularinformation,andsubject
6、detectCanjudgewhetheroneprocesshavememoryleak.MierocosmicdetectsourcecodewilIbecompiledtoadynamicsharedlibrarywhichWOuldreplaceglibcmemorymanagementfunctions.butallocationandfreeoperationiSexecutedinglibc’Smemorymallagementfunctionallthesame.Thissubjectimprovesomememorydetectiontoolsapplyinde
7、bugperiod,andit’Smainworkasfollows.『11Researchmemwatch,ccmalloc,dmallocmemorydetecttools.【2】Useamethodofpreferenceloaddynamiclibrarytocaptureuserprogramoperationonmemory.『31Locatethesourcecodelinenumberwherememoryleaktakesplace.Keyword:memory
此文档下载收益归作者所有