版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
对函数调用语句关联的指针所指向的内存块的述分析单元中出入指针所指向的内存块进入和得到分析单元中与时间类内存问题相关的检测2对所述分析单元中指针指向的内存块的状态进行状态分析,其中,单元的摘要信息,对所述函数调用语句关联的指针所指向的内存块的状态进行状态分析,所述分析单元的摘要信息用于描述所述分析单元中出入指针所指向的内存块进入和退出根据所述分析单元对应的状态分析结果,生成所述分析单元的迭代对所述分析单元中指针指向的内存块的状态进行状态分析所述根据所述状态分析对应的状态分析结果,生成所述分析单元的摘要信息在迭代过程中,根据当前轮迭代得到的状态分析结果,识别所述第二指针的摘要信息中包括以下中的一项或几项:所述所述全局变量相关且被所述全局变量带入或带出所述分析基于预设的状态转移规则,遍历所述分析单元中的语句,对所述分3在所述状态分析结果指示所述内存块的状态为终止态的情况下内存使用语句和内存释放语句中的一项或多项;在所述状态分析结果指示所述内存块的状态为中间态的情况下在所述分析单元的控制流程图中存在多个不同分支指向同一节个不同分支传出的指针指向的内存块的状态进括以下一项或多项:在所述分析单元中第二指针指向的内存块的内存分配点和释放点之间存在支配和后或者,在所述分析单元中if语句中的条件恒为真的情况下或者,在所述分析单元中while语句中的条件恒为假的情况下或者,在所述分析单元中执行第一if语句后立即执行第二if或者,在所述分析单元中函数的调用结果被作为判断4在对所述分析单元中指针指向的内存块的状态进行状态分析的支传出的第一变量进入所述节点时所述节点对应的基于记录的所述第一状态,对所述控制流程图中与所述节点相节点中的语句进行遍历,并对遍历到的语句中的指针所指向的内存块的状态进行状态分在所述多个分支中其他分支传出的指针进入所述节点时所述节点对应的内存块的第二状态与所述第一状态不一致的情况下,根据所述第一状态和所述第二状态的冲突情况,在所述多个分支中其他分支传出的指针进入所述节点时所述节点对应的内存块的第所述第二处理模块,还用于根据所述分析单元对应的状态分析结果,5所述第二处理模块在对所述分析单元中指针指向的迭代对所述分析单元中指针指向的内存块的状态进行状态分析所述第二处理模块在根据所述状态分析对应的状态分析结果,生成所述在迭代过程中,根据当前轮迭代得到的状态分析结果,识别所述第二指针的摘要信息中包括以下中的一项或几项:所述括以下一项或多项:20.根据权利要求16_19任一所述的指针,其特征在基于预设的状态转移规则,遍历所述分析单元中的语句,对所述分21.根据权利要求16_20任一所述的装置,在所述状态分析结果指示所述内存块的状态为终止态的情况下内存使用语句和内存释放语句中的一项或多项;在所述状态分析结果指示所述内存块的状态为中间态的情况下22.根据权利要求16_21任一所述的装置,其特征在6在所述分析单元的控制流程图中存在多个不同分支指向同一节个不同分支传出的指针指向的内存块的状态进24.根据权利要求16_23任一所述的装置,其特征在在所述分析单元中第二指针指向的内存块的内存分配点和释放点之间存在支配和后或者,在所述分析单元中if语句中的条件恒为真的情况下或者,在所述分析单元中while语句中的条件恒为假的情况下或者,在所述分析单元中执行第一if语句后立即执行第二if或者,在所述分析单元中函数的调用结果被作为判断在对所述分析单元中指针指向的内存块的状态进行状态分析的支传出的第一变量进入所述节点时所述节点对应的基于记录的所述第一状态,对所述控制流程图中与所述节点相节点中的语句进行遍历,并对遍历到的语句中的指针所指向的内存块的状态进行状态分7在所述多个分支中其他分支传出的指针进入所述节点时所述节点对应的内存块的第二状态与所述第一状态不一致的情况下,根据所述第一状态和所述第二状态的冲突情况,在所述多个分支中其他分支传出的指针进入所述节点时所述节点对应的内存块的第29.根据权利要求16_28任一所述的装置,30.根据权利要求16_29任一所述的装置,其特征在于所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的33.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行8题,比如:内存泄漏、重复释放、释放后再使用。在业界公认的通用缺陷列表(common9[0006]在一种可能的实现方式中,对分析单元中指针指向的内存块的状态进行状态分析单元中存在的时间类内存问题作为最终的[0009]在一种可能的实现方式中,对分析单元中指针指向的内存块的状态进行状态分句和内存释放语句中的一项或多项;在状态分析结果指示内存块的状态为中间态的情况[0018]在分析单元中第二指针指向的内存块的内存分配点和释放点之间存在支配和后二if语句中条件为假的分支添加到第一if语句中条件入节点时节点对应的内存块的第二状态与第一状态不一致,且第一状态为已分配的情况单元的摘要信息用于描述分析单元中出入指针所指向的内存块进入和退出分析单元时的[0031]第二处理模块在根据状态分析对应的状态分析结果,生过程中识别到的多个分析单元中存在的时间类内存问题作为最终的[0033]在一种可能的实现方式中,第二处理模块在根据状态分针和分析单元中的出入指针中除第二指针之外的其他指针的别名和非[0041]在分析单元中第二指针指向的内存块的内存分配点和释放点之间存在支配和后二if语句中条件为假的分支添加到第一if语句中条件放语句中的一项或多项。[0058]图4是本申请实施例提供的一种分析单元的输入_输出图(in_outgraph)的示意[0064]图10是本申请实施例提供的一种消除分析单元中冗余路径前后的该分析单元的[0065]图11是本申请实施例提供的另一种消除分析单元中冗余路径前后的该分析单元[0066]图12是本申请实施例提供的一种分析单元的控制流程图中是否消除冗余的函数控制流图可以由一系列节点和边组成。一个节点代表程序中的一个基本块(basicblock,[0087]内联展开是一种将函数体直接展开到调用处的优化技术。可以由手工指定(如[0091]静态单赋值是编译器生成的中间代码(intermediaterepresentation,IR)的一[0093]phi节点是在一个具有ssa特性的IR上,如果一个变量i当前的取值来自于前面两[0097]定义点是对任意一个变量p进行赋值的语句成为定义语句。比如:“p=malloc[0099]定义点的一种,指的是使用内存分配函数的返回值对指针p进行定义的语句。其[0101]对指针p指向的内存块进行使用的语句。内存块的使用又可分为加载或写入[0107]示例性的,图1示出了本申请实施例提供的一种时间类内存问题检测系统的架构单元均主要由一个函数或一个函数组构成。由此以实现对各个分析单元内存行为的解耦,[0108]摘要生成模块120主要是对程序划分模块110划分后的各个分析单元分别进行处块处于kInitialized状态,栈上内存是由系统负责分配和释放,因此人为对栈上内存做释进而不需要再考虑指针变量和非指针变量的划分。函数和被调用函数,比如:在func(p,q)中,p是第0个与形参相关联的指针,所以p的来描述指针指向的内存区域是进入还是退出了分析单元,亦或者即进入又退出了分析单针p的摘要信息中的isIn字段和isOut字段区域在进入分析单位时的内存块状态;当isIn=false时,inStat的字段为初始值,即存,因此,指针p的摘要信息中的isIn字段为true,isOut字段为false,inStat=[0121]在该代码中,若p的pointerId=1,q的pointe[0122]mustNoUseSet用于记录一定不会和某个指针存在别名关系的所有指针的[0127]出入指针提取模块121主要是负责提取分析单元中与形参、全局变量和返回值相识别出指针之间的约束关系,以构建出如图4所示的输入_输出图(in_outgraph)。在图4[0130]摘要初始化模块122主要负责初始化与出入指针提取模块121中从分析单元中提取到的出入指针的摘要信息。摘要初始化模块122可以给每个出入指针均初始化一条摘要indirectLevelFldAndOffset字段里的level=0,offset=0,fieldId=0,formalId=1;*p_0的摘要信息中indirectLevelFldAndOffset字段里的level=1,offset=0,fieldId=0,formalId=1;**p_0的摘要信息中indirectLevelFldAndOffset字段里的level=2,indirectLevelFldAndOffset字段里的level=1,offset=0,fieldId=1,formalId=2;u.b的摘要信息中indirectLevelFldAndOffset字段里的level=1,offset=0,fieldId=入分析单元时,isIn字段可以赋值为true;当该指针通过形参或返回值退出分析单元时,存块的状态将变为kAllocated;在将指针赋值为0时,该指针指向的内存块的状态将变为部分析模块123就可以将其得到的检测结果作为此次分表1所示,当记录的分支传出的指针p__0指向的内存块的状态为kUninitialized、kInitialized或kFreed时,如果某个分支传出的指针p_1指向的内存块的状态为块123可以分别探索phi节点之前的路径和phi节点之后的路径。局部分析模块123在探索单元A进行分析的局部分析模块123在分析时,由于funB()的摘要为空,因此,析模块123为了得到正确的摘要信息,迭代次数最多是分析单元在源代码的函数调用图息是正确的,通过此轮得到的所有摘要信息相对于上一轮得到的所有摘要信息是否有更[0157]以上即是对本申请实施例提供的时间类内存问题检测系统100的介绍。在实际操[0158]示例性的,图9示出了本申请实施例提供的另一种时间类内存问题检测系统的架910和局部优化模块920均可以为多个,且一个状态归一模块910可以用于对一个分析单元件a的判断分别走向了BB2和BB3两条分支,汇聚到BB4后,又通过条件b的判断分别走向了BB5和BB6两条分支,最终汇聚到BB7。整个过程可被看为具有BB1→BB2→BB4→BB5→BB7、制化编译技术找到并消除。这些场景包括if(flag)、while(flag)之类单个条件是否恒为要包括用于对变量取值范围进行计算和传播的值域传播算法(valuerangepropagation,VRP)和用于对CFG进行精简消除的简化控制流图(simplifyCFG)算→BB7,但BB1→BB2→BB4→BB6→BB7和BB1→BB3→BB4→BB5→BB7两条路径一定是不可达一致的,BB1→BB2分支在BB4处经过判断,一定会到达BB5,不可能到达BB6。通过的部分或全部内容均可以参见上述对时间类内存问题描述分析单元中出入指针所指向的内存块进入和退出分析单元时通过状态分析结果,来识别分析单元中与该内存块相关的语句是否存在时间类内存问题。[0195]作为一种可能的实现方式,在状态分析结果指示内存块的状态为终止态的情况[0197]在一些实施例中,前述S1302中的对分析单元中指针指向的内存块的状态进行状中,难以控制funA和funB的摘要信息生成顺序,所以在本轮迭代中用上一轮写的生成的最后一轮迭代过程中识别到的多个分析单元中存在的时间类内存问题作为最终的检测结[0202]在分析单元中第二指针指向的内存块的内存分配点和释放点之间存在支配和后[0204]或者,在分析单元中while语句中的条件恒为假(即恒不成立)的情况下,消除记录的第一状态,对控制流程图中与节点相关联且未探索的边上的节点中的语句进行遍通过已记录的状态和当前分支传出的指针进入节点时节点对应的内存块的状态进行对比,[0212]可以理解的是,上述实施例中各步骤的序号的大小并不迭代过程中识别到的多个分析单元中存在的时间类内存问题作为最终的检[0226]在分析单元中第二指针指向的内存块的内存分配点和释放点之间存在支配和后二if语句中条件为假的分支添加到第一if语句中条件句中的一项或多项。[0238]同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云备,如服务器等。或者,第一处理模块1401也可以是利用专用集成电路(application_specificintegratedcircuit,ASIC)实现、或可编程逻辑器件(programmablelogicdevice,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complexprogrammablelogicaldevice,CPLD)、现场可编程门阵列(field_programmablegate描述的时间类内存问题检测方法中的任意步骤,第一处理模块1401和第二处理模块1402负实施例描述的时间类内存问题检测方法中不同的步骤来实现图14所示的时间类内存问题[0245]存储器1506可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,RAM)。处理器1504还可以包括非易失性存储器(non_volatilememory),例如只读存储
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国污水处理设备市场供需分析及技术升级与政策导向评估报告
- 2026中国智能家居行业市场现状发展分析及投资前景规划指导意见报告
- 2026中国养老服务行业市场发展现状分析
- 2026中国医药包装材料行业现状调研与发展趋势研究分析摘要
- 新版教科版六年级上册科学(课件) 第2单元 5设计潜望镜
- 2026中国游戏开发行业市场需求及行业未来规划分析研究报告
- 2026中国现代种业技术创新与种质资源保护利用报告
- 2026绥化技校面试题及答案
- 2026及未来5年中国半自动瓶装生产线数据监测研究报告
- 2026事业单位工勤技能-广西-广西放射技术员一级(高级技师)历年参考题库含答案详解3套试卷
- 地下少先队简介课件
- 2026年湖南生物机电职业技术学院单招职业技能测试题库附答案
- 匹克球教学训练
- 2025党章党规党纪应知应会知识测试题库(附完整答案)
- 甘肃省静宁县2025年上半年事业单位公开遴选试题含答案分析
- 安防监控巡检服务报告
- 四川佰思格新材料科技有限公司钠离子电池硬碳负极材料生产项目环评报告
- COPD的课件教学课件
- 幕墙设计设计方案汇报
- 开学第1课:序言+物理学及研究规律(课件)-2023-2024学年高一物理同步讲练课堂(人教版2019必修第一册)
- 十五五原材料工业发展规划
评论
0/150
提交评论