CN103440196B - 一种操作系统资源问题检测方法 - Google Patents

一种操作系统资源问题检测方法 Download PDF

Info

Publication number
CN103440196B
CN103440196B CN201310291124.5A CN201310291124A CN103440196B CN 103440196 B CN103440196 B CN 103440196B CN 201310291124 A CN201310291124 A CN 201310291124A CN 103440196 B CN103440196 B CN 103440196B
Authority
CN
China
Prior art keywords
statement
resource
path
function
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201310291124.5A
Other languages
English (en)
Other versions
CN103440196A (zh
Inventor
黄明
郭书杰
梁旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dalian Jiaotong University
Original Assignee
Dalian Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dalian Jiaotong University filed Critical Dalian Jiaotong University
Priority to CN201310291124.5A priority Critical patent/CN103440196B/zh
Publication of CN103440196A publication Critical patent/CN103440196A/zh
Application granted granted Critical
Publication of CN103440196B publication Critical patent/CN103440196B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种操作系统资源问题检测方法,属于软件测试技术领域。本发明第一步是文件读取。第二步是语句预处理。第三步是语句处理。第四步是路径生成。第五步是检测并报告检测结果:通过遍历路径链表中的路径,监视个路径中资源的数量变化情况。根据资源问题错误模型检测可能存在的资源问题。记录检测出的资源问题的种类、发生位置以信息,并生成检测结果报告。记录从入口到发生资源问题的代码处的执行路径与控制条件,生成辅助测试用例。本步骤通过遍历资源路径,记录路径中各资源数量的变化情况,来判断函数中是否存在资源问题。

Description

一种操作系统资源问题检测方法
技术领域
本发明涉及一种操作系统资源问题检测方法,属于软件测试技术领域。
背景技术
资源申请、使用、释放过程中,因未满足规范性、安全性、可靠性要求而引发的错误称为资源问题,常见的资源问题包括资源泄漏和资源访问冲突两种情况。资源问题是一种常见的软件缺陷,具有隐蔽性强、危害性强、随机性强、影响广泛等特点。资源问题的严重性引起了不少学者的关注,但大部分学者的关注对象局限在内存资源,未考虑内核锁、套接字等其他资源;同时,仅解决了内存资源的泄漏的检测,未解决资源访问冲突问题的检测。他们提出的内存资源泄漏问题的检测方法主要包括静态分析方法和动态分析方法两种。静态分析方法多采用模型检验,即首先建立内存管理模型,然后通过对模型的分析来完成软件系统内存泄漏问题的检测。这种方法在大型系统错误检测方面比测试要有效,但检测是基于代码抽象出的模型,而不是代码本身;在模型建立过程中使用的抽象技术以及转化方法,都可能使所建模型与程序代码存在较大偏差,进而影响监测结果的可靠性。动态分析技术主要存在两个缺陷:由于受到测试用例的质量和数量的限制,无法较全面检测程序中的内存泄露问题;另外,由于受到操作系统自身特点的限制,很难将动态分析技术用于操作系统内核的检测。
操作系统是管理和控制计算机硬件与软件资源的计算机程序,是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统软件具有功能复杂、可靠性和安全性要求高等特点。因而资源问题对操作系统的危害巨大。为了解决操作系统软件中的资源问题的检测问题,提出了本发明。
发明内容
本发明针对以上问题的提出,而研制一种操作系统资源问题检测方法。
本发明的技术方案如下:
第一步是文件读取:负责读取指定的源代码文件,找出文件中的各个函数,并将函数所在文件名称、函数名称、函数代码信息实例化到函数信息类变量中,存入函数链表。本步骤用于源代码分解,将源代码文件中的有效代码分解成一个个函数,并记录函数的基本信息,供后续处理使用。
第二步是语句预处理:进行语句标准化处理,确保每行只包含一条语句;为结尾无“return”关键字的函数加上return语句,以便后期检测中找到该出口;将break语句转换成goto语句,并删除向上返回的goto语句及其标签语句,以防止资源路径图中出现“环”;对函数语句进行类型标示,并删除无关语句;记录语句的原始行号、语句类型、语句内容以及资源处理信息,并保存到待处理语句链表中。本步骤用于完成语句精简,根据检测需要,将各个函数中的无关语句删除,从而减少检测工作量,增加检测效率。
第三步是语句处理:根据语句类型对待处理语句链表中的语句进行处理,生成相应语句节点和路径元,分别存入语句节点链表和路径元链表。本步骤用于得到函数中与资源操作相关的语句信息和路径信息。
第四步是路径生成:根据路径元链表中的路径元,生成从入口节点到所有出口节点的全部路径,并将路径存储在路径链表中。一个用路径元链表表示的资源路径图可以转换为一个有重复节点的路径树。路径树从根节点到各叶子节点的路径就构成了资源路径图的全部资源路径,如图2所示。本步骤用于得到函数中全部资源路径。
第五步是检测并报告检测结果:通过遍历路径链表中的路径,监视个路径中资源的数量变化情况。根据资源问题错误模型检测可能存在的资源问题。记录检测出的资源问题的种类、发生位置以信息,并生成检测结果报告。记录从入口到发生资源问题的代码处的执行路径与控制条件,生成辅助测试用例。本步骤通过遍历资源路径,记录路径中各资源数量的变化情况,来判断函数中是否存在资源问题。
资源的使用要遵循以下准则:资源使用前需先申请;不再使用的资源应及时释放并且只能释放一次。不满足上述准则时,就会出现资源问题,问题主要包括资源泄漏和资源访问冲突两种类型,其中资源泄漏又包含资源失控和资源遗漏两种情况。当一个资源未被释放但已不可访问时,称之为资源失控。资源遗漏是指因未释放不再使用的资源导致的资源泄漏问题。资源访问冲突是指访问已经被释放的资源,导致程序出现不可预见的结果。比如再次释放已被释放的资源,导致程序崩溃;访问已经被释放的指针,造成程序执行结果不可预知等。对一个函数Fi,删除与资源操作无关的语句,将入口语句、资源相关语句、出口语句视为一个个节点,通过路径相关语句组成的控制流将各个节点连接起来,就构成了该函数的资源路径图。该图有唯一一个入度为0的点,称之为入口节点;图中出度为0的点称为出口节点。假设Fi的资源路径图ResGraphFi有m个出口节点NodeEx[0]、NodeEx[1]、....、NodeEx[m-1]。从入口节点到每个出口节点的执行路径构成了Fi的全部资源路径。通过遍历各条资源路径,根据资源问题错误模型监测各个路径上资源的状态与数量,即可检测出该函数是否存在资源相关问题。如果某左资源赋值语句所在节点处,该资源的数量不为0,则该资源失控,存在资源泄露。如果在某个出口节点处,某资源的数量减去作为函数返回值的资源数量>0,则该资源未被及时释放,存在资源泄漏;某资源的数量减去作为函数返回值的资源数量<0,则该资源被多次释放,存在资源访问冲突。在某资源使用语句处,如果该资源的数量为0,则存在资源未被重新申请即使用的情况,存在资源访问错误。
本发明原理及有益效果:本发明涉及的检测方案解决了检测效率、资源扩展、漏报及误报、问题确认等几个方面的问题。方案可以检测软件代码中的资源泄漏、资源访问冲突等常见资源问题;同时,可以根据自身需求,创建自定义资源并将其纳入检测范围,使得检测对象不局限于内存资源,也可检测内核锁、套接字等其他资源。方案采用全路径覆盖检测,加之建立了较完备的资源问题错误模型,因而具有较低的漏报率,在检测过程中,考虑了待测程序的上下文环境,降低了误报率;为了从静态分析的结果中识别出真实的缺陷,需要设计测试用例以确认所报错误的真实性;该方案完整记录了疑似错误代码的位置及到达该位置的执行路径和执行条件,可以半自动完成这些测试用例的生成工作。本发明解决了操作系统软件中资源问题的自动化检测问题,提高了测试效率,降低了测试成本。
附图说明
图1是资源问题检测过程的流程图,用于描述整个检测流程;
图2是由路径元链表生产路径链表的示意图。
图3if-else语句的标示结果。
具体实施方式
具体检测过程分以下五步完成,如图1所示。
第一步是文件读取:负责读取指定的源代码文件,找出文件中的各个函数,并将函数所在文件名称、函数名称、函数代码信息实例化到函数信息类变量中,存入函数链表。
第二步是语句预处理:进行语句标准化处理,确保每行只包含一条语句;为结尾无“return”关键字的函数加上return语句,以便后期检测中找到该出口;将break语句转换成goto语句,并删除向上返回的goto语句及其标签语句,以防止资源路径图中出现“环”;对函数语句进行类型标示,并删除无关语句;记录语句的原始行号、语句类型、语句内容以及资源处理信息,并保存到待处理语句链表中。
第三步是语句处理:根据语句类型对待处理语句链表中的语句进行处理,生成相应语句节点和路径元,分别存入语句节点链表和路径元链表。
第四步是路径生成:根据路径元链表中的路径元,生成从入口节点到所有出口节点的全部路径,并将路径存储在路径链表中。一个用路径元链表表示的资源路径图可以转换为一个有重复节点的路径树。路径树从根节点到各叶子节点的路径就构成了资源路径图的全部资源路径,如图2所示。
第五步是检测并报告检测结果:通过遍历路径链表中的路径,监视个路径中资源的数量变化情况。根据资源问题错误模型检测可能存在的资源问题。记录检测出的资源问题的种类、发生位置以等信息,并生成检测结果报告。记录从入口到发生资源问题的代码处的执行路径与控制条件,生成辅助测试用例。
本发明所述的资源问题检测方案,包括文件读取、预处理、语句处理、路径生成、生成检测报告等步骤,方案的具体实施过程如下。
(1)文件读取:打开并读取用户指定程序源文件,并对读取的文件内容进行处理,形成以函数为单位的存储单元,存放在函数链表中,供后续处理使用。
首先应删除所有注释行。根据C和C++语言的特定,确定一条语句为函数定义开始的条件如下:该语句不含“;”、不含“if”、不含“switch”、不含“{”和“}”、不含“for”、不含“while”、不含“do”、不含“#”、不含“:”、不含“=”、不以“/*”开头、不以“*”开头、不以“//”开头,不以“\”结尾。
然后从文件中逐行查看是否为函数定义行。如果是,则将函数名称、函数体等信息存入函数链表中。
(2)预处理:在函数体中,找出与资源问题检测相关的入口语句、出口语句、资源相关语句及路径相关语句等,并将找出的语句存储于待处理语句链表,供后续处理使用。主要完成以下工作。
语句分解:若一行中存在多条语句,则将这些语句分解成独立行,以方便后续处理。
处理大括号:将语句中出现的“{”和“}”分离出来,独立成一行。
判断语句处理:若一行中存“else”关键词紧跟在“if”关键词之后的情况时,将该if语句分离出来,独立成行。
返回语句处理:为结尾无“return”关键字的函数加上return语句,以便后期检测中找到该出口。
将break语句转换成goto语句:为了统一处理,将break语句转换成goto语句。
消除向上返回的goto的语句:删除向上返回的goto语句。
语句类型标示:对函数的每条语句进行类型标示。无关语句的标示是语句类型标示的难点。无关语句的标示需要对代码进行多次扫描,第一次扫描单条语句,以后扫描if、if-else和switch-case中的复合语句。无关语句的标示基于以下准则:①除资源相关语句、路径相关语句、入口语句和出口语句外的其他语句均为无关语句。此类无关语句,在第一次遍历时标示。②第一个资源相关语句前的所有语句(含路径相关语句)均视为无关语句。此类无关语句,在第一次遍历时标示。③子语句全部为无关语句的复合语句(含路径相关语句块)视为无关语句。此类无关语句,在后续遍历时标示。对if、if-else和switch-case中的复合语句是否为无关语句的处理过程如下。
if语句的标准形式是“if(expression)statement”,这里的statement可能是单条语句,也可能是由大括号括起来的复合语句块。对一个if语句来说,如果if后的statement中的所有语句均不含资源相关语句和出口语句,将该if语句标示为无关语句;否则视情将该if语句标示为路径相关语句、资源申请成功语句或资源申请失效语句。
if-else语句的标准形式是“if(expression)statementAelsestatementB”。对于一个if-else语句来说,若statementA、statementB的所有语句均不含资源相关语句或出口语句,则将该if语句和else语句均标示为无关语句;若statementA包含资源相关语句或出口语句,statementB不包含资源相关语句或出口语句,则将该if语句标示为路径相关语句、资源申请成功语句或资源申请失效语句,将else语句均标示为无关语句;若statementB包含资源相关语句或出口语句,statementA不包含资源相关语句或出口语句,则将该if语句标示为路径相关语句、资源申请成功语句或资源申请失效语句,将else语句均标示为无关语句(这样做的目的是为了方便后续处理);若statementA、statementB均包含资源相关语句或出口语句,则将该if语句和else语句均标示为无关语句;若if和else语句后的语句或复合语句块中的所有语句均不含资源相关语句和出口语句,则将该语句的if语句标示为路径相关语句、资源申请成功语句或资源申请失效语句,将else语句均标示为路径相关语句。假设用0表示语句中不包含资源相关语句或出口语句,用1表示语句中包含资源相关语句或出口语句,用A表示无关语句,用B表示路径相关语句、资源申请成功语句或资源申请失效语句,则一个标准的if-else语句的标示结果如图3所示。
基于上述分析,对if语句是否为无关语句的标示过程如下:如果statement中不包含未被标示的if语句,则按照statement中是否包含资源相关语句或出口语句以及if语句本身是否包含资源申请成功或失效条件,完成if语句的标示;如果statement中包含未被标示if语句,则递归调用if语句的处理函数完成语句类型标示。对if-else语句是否为无关语句的标示过程如下:statementA和statementB中不包含未被标示if语句,则按照表1的标示规则对if和else语句进行标示;如果statementA或statementB中包含未被标示if语句,则递归处理包含if语句的statement。if和if-else语句的处理流程如图3所示。
对于一个switch-case语句来说,当某个case/default至break(或下一个case)之间的语句均不含资源相关语句和出口语句时,将该case/default语句块标示为无关语句,goto语句也标示为无关语句。当一个switch--case语句中的所有case语句均为无关语句时,将该switch语句块标示为无关语句。
为了完成对if-else和switch-case语句嵌套情况下的处理,需要对待处理语句进行两遍if-else语句处理扫描和两遍switch-case语句处理扫描,四次扫描交叉进行,如if-else处理→switch-case处理→if-else处理→switch-case处理,或者switch-case处理→if-else处理→switch-case处理→if-else处理。
删除无关语句:遍历待处理语句链表,删除所有类型为无关语句的语句。
(3)语句处理:预处理模块完成后,待处理语句链表中存放的是与资源问题相关的资源相关语句、路径相关语句、出口语句、入口语句等有效语句,语句处理模块根据这些有效语句生成语句结点,存储于语句结点链表;同时生成相通结点间的路径元,存储于路径元链表,供路径生成模块使用。if-else语句的处理是语句处理的难点,具体处理过程如下。
在对if-else进行处理时,如果else表达式不存在,则要生成该表达式的根结点(if表达式)到各子结点的路径元,同时还要生成各子结点到下一结点的路径元;当else表达式不存在时,要生成该表达式的根据点到子结点的路径元,还要根节点和子结点到下一结点的路径元。因而对于一个if表达式来说,需将根节点和非出口节点的子结点存入判定路径元起始结点链表,以便生成他们与后续语句的路径元。对于一个if-else表达式来说,则需将非出口节点的子结点存入判定路径元起始结点链表,以便生成他们与后续语句的路径元。
遇到if语句首先生成语句结点,存入语句结点链表,并生成判定语句根结点信息结构体,存入判定语句根节点栈。
if语句后的语句有三种情况:新的if语句、单行非if语句、由大括号括起来的复合语句。
对于if语句,采用递归调用来处理。
单行非if语句做如下处理:若为switch-case语句则按switch-case语句处理,否则按如下方式处理:生成节点,存入数组,若该语句非出口语句则将节点位置记录在判定路径元起始结点链表,以便生成后续路径段;若后续行含else则按else语句继续处理后续语句,否则将栈顶元素的iPos存入临时节点数组并做出栈操作。
复合语句做如下处理:当复合语句不包含if语句时,处理方式如下:最后一条语句的处理方式同单行语句;其他语句则采用生成节点、存入数组、记录路径段的方式处理。当复合语句包含if语句时,通过递归调用本处理过程完成处理。
当条件表达式中包含资源申请失效条件时,资源未申请成功,因而此时在if后面的语句中,要自动加入针对该资源的资源释放语句。
else语句的处理过程如下:else语句后的语句有三种情况,即新的if语句、单行非if语句、由大括号括起来的复合语句。
对于if语句,按照if语句处理方式处理。
单行语句做如下处理:若为switch-case语句则按switch-case语句处理,否则按如下方式处理:生成节点,存入数组,若该语句非出口语句则将节点位置记录在临时节点数组,以便生成后续路径段;做出栈操作。
复合语句做如下处理:当复合语句不包含if语句时,处理方式如下:最后一条语句的处理方式同单行语句;其他语句则采用生成节点、存入数组、记录路径段的方式处理。当复合语句包含if语句时,通过递归调用本处理过程完成处理。
当条件表达式中包含资源申请成功条件时,与之对应的else语句被执行时,表示资源申请失败,因而此时在else后面的语句中,要自动加入针对该资源的资源释放语句。
(4)路径生成:路径生成模块根据语句处理模块生成的语句结点链表和路径元链表,找到资源路径图中从源点到各个汇点的全部路径,并将其保存到路径链表中。处理过程如下。
一个采用路径元标示的资源路径图可以转换为一个有重复节点的路径树。转换方法是对于任意路径元P(i,j),路径元终止节点j是路径元起始节点i的孩子。路径树的所有从根节点到叶子节点的路径构成了资源路径图的全部资源路径。
从资源路径图的路径元数组得到资源路径的算法如下。
算法1.资源路径图路径生成算法
输入:语句处理模块得到的路径元链表
输出:路径链表
处理过程:
step1.初始化:当前父节点NodeF=-2;当前完整路径段PathS=“”;清空路径数组Paths;
step2.处理以入口节点为起始结点的路径元:读取路径元链表PathUnit中的第一个路径元PathUnit[0];a=PathUnit[0].iBegin;在PathUnit中查找所有以a为起始结点的路径元,并将这些路径元记入路径数组Paths;从PathUnit中删除已处理的路径元。
step3.处理PathUnit中的其他元素:对于Paths中的元素Pi,得到Pi的当前路径终点NodeEnd,在PathUnit中查找所有以a为起始结点的路径元。若找到,则分别将这些路径元的终止节点追加到NodeEnd后面,生成新的路径,将这些新路径存入路径数组Paths中;若未找到,则将Pi的处理完成标识设置为true。循环做以上处理,直至Paths中的所有路径的处理完成标示均为true。
(5)生成检测报告:遍历路径链表中的每条路径,根据该路径中的资源处理情况,生成检测报告。
假设资源路径图的路径数组Paths中的任一路径Pi有节点Node1、Node2、…Noden组成,顺序访问这些节点,并记录资源的数量。如果某左资源赋值语句所在节点处,该资源的数量不为0,则该资源失控,存在资源泄露(错误5)。如果在某个出口节点处,某资源的数量减去作为函数返回值的资源数量>0,则该资源未被及时释放,存在资源泄漏(错误3);某资源的数量减去作为函数返回值的资源数量<0,则该资源被多次释放,存在资源访问冲突(错误4)。在某资源使用语句处,如果该资源的数量为0,则存在资源未被重新申请即使用的情况,存在资源访问错误(错误1、2)。若某资源的数量已经为零,又出现包含该资源的语句时,报告资源访问冲突错误。对于每一处错误,记录执行路径及执行条件等信息,并将这些信息一并记入检测报告中。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (1)

1.一种操作系统资源问题检测方法,其特征在于:包括如下几步,
第一步是文件读取:负责读取指定的源代码文件,找出文件中的各个函数,并将函数所在文件名称、函数名称、函数代码信息实例化到函数信息类变量中,存入函数链表;所述第一步用于源代码分解,将源代码文件中的有效代码分解成一个个函数,并记录函数的基本信息,供后续处理使用;
第二步是语句预处理:进行语句标准化处理,确保每行只包含一条语句;为结尾无return关键字的函数加上return语句,以便后期检测中找到该出口;将break语句转换成goto语句,并删除向上返回的goto语句及其标签语句,以防止资源路径图中出现环;对函数语句进行类型标示,并删除无关语句,所述无关语句为语句类型标示的难点;记录语句的原始行号、语句类型、语句内容以及资源处理信息,并保存到待处理语句链表中;所述第二步用于完成语句精简,根据检测需要,将各个函数中的无关语句、goto语句及其标签语句删除,从而减少检测工作量,增加检测效率;
第三步是语句处理:根据语句类型对待处理语句链表中的语句进行处理,生成相应语句节点和路径元,分别存入语句节点链表和路径元链表;所述第三步用于得到函数中与资源操作相关的语句信息和路径信息;
第四步是路径生成:根据路径元链表中的路径元,生成从入口节点到所有出口节点的全部路径,并将路径存储在路径链表中;一个用路径元链表表示的资源路径图可以转换为一个有重复节点的路径树;路径树从根节点到各叶子节点的路径就构成了资源路径图的全部资源路径;所述第四步用于得到函数中全部资源路径;
第五步是检测并报告检测结果:通过遍历路径链表中的路径,监视各路径中资源的数量变化情况;根据资源问题错误模型检测可能存在的资源问题;记录检测出的资源问题的种类、发生位置信息,并生成检测结果报告;记录从入口到发生资源问题的代码处的执行路径与控制条件,生成辅助测试用例;所述第五步通过遍历资源路径,记录路径中各资源数量的变化情况,来判断函数中是否存在资源问题。
CN201310291124.5A 2013-07-11 2013-07-11 一种操作系统资源问题检测方法 Expired - Fee Related CN103440196B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310291124.5A CN103440196B (zh) 2013-07-11 2013-07-11 一种操作系统资源问题检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310291124.5A CN103440196B (zh) 2013-07-11 2013-07-11 一种操作系统资源问题检测方法

Publications (2)

Publication Number Publication Date
CN103440196A CN103440196A (zh) 2013-12-11
CN103440196B true CN103440196B (zh) 2016-03-09

Family

ID=49693887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310291124.5A Expired - Fee Related CN103440196B (zh) 2013-07-11 2013-07-11 一种操作系统资源问题检测方法

Country Status (1)

Country Link
CN (1) CN103440196B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955516B (zh) * 2014-05-05 2018-01-26 中国工商银行股份有限公司 联机交易中主机资源访问信息优化方法及装置
CN107423213B (zh) * 2017-04-11 2020-12-18 腾讯科技(深圳)有限公司 一种文件描述符分配检测方法和装置
CN107179950B (zh) * 2017-06-29 2020-10-27 努比亚技术有限公司 一种应用进程处理方法、移动终端以及计算机可读存储介质
CN109213709B (zh) * 2017-06-30 2021-01-15 阿里巴巴(中国)有限公司 数据转换方法、装置及数据处理设备
CN107632929B (zh) * 2017-08-21 2020-06-05 北京京东尚科信息技术有限公司 一种检测内存泄漏的方法和装置
CN108089989B (zh) * 2018-01-04 2020-10-16 武汉斗鱼网络科技有限公司 一种路径检测方法、电子设备及可读存储介质
CN111858290B (zh) * 2019-04-30 2024-02-06 深圳市前海源伞科技有限公司 用于检测目标代码的内存泄漏路径的方法和设备
CN112380122A (zh) * 2020-11-13 2021-02-19 Xc5香港有限公司 通用资源静态检测方法、装置、计算机设备及存储介质
CN112506780A (zh) * 2020-12-10 2021-03-16 零氪科技(北京)有限公司 一种问题追踪的方法、系统、电子设备及存储介质
CN112597351B (zh) * 2020-12-28 2023-11-10 凌云光技术股份有限公司 一种工业图像处理软件的流程图错误自检方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567200A (zh) * 2011-12-14 2012-07-11 北京航空航天大学 基于函数调用图的并行化安全漏洞检测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567200A (zh) * 2011-12-14 2012-07-11 北京航空航天大学 基于函数调用图的并行化安全漏洞检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种混合式内存泄露静态检测方法;胡燕等;《小型微型计算机系统》;20081031;第29卷(第10期);第1935页到第1939页 *

Also Published As

Publication number Publication date
CN103440196A (zh) 2013-12-11

Similar Documents

Publication Publication Date Title
CN103440196B (zh) 一种操作系统资源问题检测方法
Papadopoulos et al. Model-based synthesis of fault trees from matlab-simulink models
Souri et al. Behavioral modeling and formal verification of a resource discovery approach in Grid computing
CN105184166A (zh) 基于内核的安卓程序实时行为分析方法及系统
CN102789416A (zh) 面向bit软件测试的存储器故障注入方法及其模拟器
Zhu et al. A methodology of testing high-level Petri nets
Wang et al. Minimization of dynamic sensor activation in discrete event systems for the purpose of control
Selberg et al. 10.1. 1 toward an evolutionary system of systems architecture
Oyetoyan et al. A study of cyclic dependencies on defect profile of software components
US8381188B2 (en) Leveraging the relationship between object IDs and functions in diagnosing software defects during the post-deployment phase
Fanti et al. Fault diagnosis and identification of discrete event systems using Petri nets
CN107272441B (zh) 用于监控错误的方法和用于监控错误的数据处理装置
Liuying et al. Test selection from UML statecharts
KR101993635B1 (ko) 지능형 자율 시스템에서의 사고 원인 추적 시스템
Hu et al. Quality model based on ISO/IEC 9126 for internal quality of MATLAB/Simulink/Stateflow models
Gu et al. A qualitative safety analysis method for AADL model
Ehlers et al. Reactive safety
Saeed et al. ADISTES ontology for active diagnosis of sensors and actuators in distributed embedded systems
Rover et al. Software tools for complex distributed systems: Toward integrated tool environments
Moestl et al. Handling complex dependencies in system design
JP2011154568A (ja) 情報処理装置、プログラム検証方法およびプログラム
Cardoso et al. Extending Attack-Fault Trees with Runtime Verification
US20140257736A1 (en) Implementing automated memory address recording in constrained random test generation for verification of processor hardware designs
CN113961475B (zh) 基于规约导向的错误处理缺陷的检测方法及系统
Kong et al. Tracing error propagation in C/C++ applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160309

Termination date: 20170711