CN110633212B - 一种基于抽象内存模型的数据流分析方法 - Google Patents

一种基于抽象内存模型的数据流分析方法 Download PDF

Info

Publication number
CN110633212B
CN110633212B CN201910832877.XA CN201910832877A CN110633212B CN 110633212 B CN110633212 B CN 110633212B CN 201910832877 A CN201910832877 A CN 201910832877A CN 110633212 B CN110633212 B CN 110633212B
Authority
CN
China
Prior art keywords
pointer
analysis
storage structure
variable
sequential storage
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
CN201910832877.XA
Other languages
English (en)
Other versions
CN110633212A (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.)
China University of Petroleum East China
Original Assignee
China University of Petroleum East China
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 China University of Petroleum East China filed Critical China University of Petroleum East China
Priority to CN201910832877.XA priority Critical patent/CN110633212B/zh
Publication of CN110633212A publication Critical patent/CN110633212A/zh
Application granted granted Critical
Publication of CN110633212B publication Critical patent/CN110633212B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种面向C程序顺序存储结构静态分析的抽象内存模型,对于经过预处理后的C程序,采用区间运算与指针分析技术分析C程序中指针访问顺序存储结构操作的过程,包括:A、对顺序存储结构进行适用于数据流分析的建模,描述顺序存储结构在内存中的抽象表示及指向顺序存储结构的指针变量的指向区域与偏移;B、定义通过指针访问顺序存储结构的迁移操作,提出安全范围判别保证操作安全性;C、定义通过指针访问顺序存储结构的谓词操作。本发明可实现对顺序存储结构上发生偏移的性质进行有效刻画,同时通过定义的迁移操作及谓词操作可准确描述指针访问顺序存储结构的过程,并保证操作的安全性。

Description

一种基于抽象内存模型的数据流分析方法
技术领域
本发明属于程序语义缺陷修复方法技术领域,更具体的说是涉及一种基于抽象内存模型的数据流分析方法。
背景技术
数据流分析一直是软件测试领域关注的重要问题。它是程序分析中的关键技术,通过分析程序状态信息在控制流图中的传播来计算每个静态程序点(语句)在运行时可能出现的状态。通过数据流分析,测试人员可以不必实际运行程序就能够发现程序运行时的行为。数据流分析结果可用于测试用例生成、缺陷检测等软件测试领域的重要工作。
数组、malloc动态分配后的连续内存等顺序存储结构在C程序中被大量使用,其结构的复杂性使得无法利用传统的数据流分析方法对其进行准确分析。传统的数据流分析方法基于分析和效率折中的考虑,没有对顺序存储结构进行建模;其次,在程序利用指针访问顺序存储结构时,大多数现有的数据流分析方法基本只维护了指针的指向信息,没有讨论指针在连续内存中可能发生偏移的数值性质,更未考虑发生偏移时可能存在越界的不安全问题。因此,对C语言中的顺序存储结构进行有效刻画与描述是数据流分析领域的难点。
因此,如何提供一种基于抽象内存模型的数据流分析方法成为了本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种基于抽象内存模型的数据流分析方法,主要目的在于通过实现对顺序存储结构的抽象建模,归纳总结C程序中通过指针访问顺序存储结构的各种操作过程。
为了实现上述目的,本发明采用如下技术方案:
一种基于抽象内存模型的数据流分析方法,包括以下几个步骤:
A、对顺序存储结构进行适用于数据流分析的建模,描述顺序存储结构在内存中的抽象表示及指向顺序存储结构的指针变量的指向区域与偏移;
B、定义通过指针访问顺序存储结构的迁移操作,提出安全范围判别保证操作安全性;
C、定义通过指针访问顺序存储结构的谓词操作。
优选的,所述步骤A对顺序存储结构进行适用于数据流分析的建模过程如下:
对于C程序中的一个变量p,当p为数组变量时,其模型表示为<Var,Region,Domain>,此时取值区间为各数组元素区域信息,其中由某个数组元素索引与其对应区域构成;当p为指针变量时,Domain={d1,d2,…,dn}为p指向区域与对应偏移的集合,其中di=<PtRegion,Offset>,PtRegion为指针变量p指向的内存对象Var对应区域,且Offset是一个整型表达式,表示偏离指向基址的偏移量对应的整型区间。
优选的,所述步骤B中通过指针访问顺序存储结构的迁移操作的过程如下:
安全范围判别是指在执行迁移操作前,对指针变量指向区域偏移将发生的增大或缩小进行预先判定,若超出顺序存储结构的索引下界或上界,则提示out of bounds警告。
优选的,指针访问顺序存储结构的操作包括值访问与地址访问两种。
优选的,地址访问的迁移操作分析过程如下:
判断该操作是否是指针自加或自减操作,
若是,则确定自加或自减符号,根据变量指向区域与偏移确定后一个或前一个对象x;
若否,则判断是否为数组变量或指针变量或数组元素取地址与整型表达式的加减操作;若否,分析结束;若是,则确定整型表达式的值,根据数组变量或指针变量或数组元素取地址确定右端对象x;
判断对象x是否存在,
若不存在,则提示out of bounds警告后,分析结束;
若存在,则判断对象x是否已经抽象表示;若是,则左端更新符合表达式、基址、指向区域、偏移区间后,分析结束;若否,则先对对象x进行抽象建模,再左端更新符合表达式、基址、指向区域、偏移区间后,分析结束。
优选的,值访问的迁移操作分析过程如下:
判断该操作是否为指针引用顺序存储结构元素操作,
若否,则先确定指针变量当前指向区域对应对象,然后对指针变量指向对象的取值区间进行区间并操作,再将生成的新区间赋值给左端变量后,分析结束;
若是,则先确定指针变量当前指向区域与偏移,然后引用顺序存储结构元素,再判断x是否存在;
若不存在,则提示out of bounds警告后,分析结束;
若存在,则判断对象x是否已经抽象表示;若是,则将生成的新区间赋值给左端变量后,分析结束;若否,则先对x进行抽象建模,再将生成的新区间赋值给左端变量后,分析结束。
优选的,谓词操作分析过程如下:
先确定关系符号左右两端对象x、y,再判断x、y是否都存在,若否,则分析结束;
若是,则判断x、y是否存在共同基址,
若不存在,则分析结束;
若存在,则先取出满足两端存在共同基址的部分(m、n),对相应的指针变量进行指向区域和偏移区间的更新,再判断m、n的偏移区间是否全部或部分满足关系;
若否,则分析结束;
若是,则取出此时指针变量对应的指向区域与偏移区间后,分析结束。
本发明的有益效果在于:
本发明的抽象内存模型相比现有的大多数抽象内存模型,可实现对顺序存储结构上发生偏移的性质进行有效刻画,同时通过定义的迁移操作及谓词操作可准确描述指针访问顺序存储结构的过程,并保证操作的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1附图为本发明的地址访问迁移操作过程示意图。
图2附图为本发明的值访问迁移操作过程示意图。
图3附图为本发明的谓词操作过程示意图。
图4附图为本发明的顺序存储结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅附图1-4,本发明提供了一种基于抽象内存模型的数据流分析方法,包括以下几个步骤:
A、对顺序存储结构进行适用于数据流分析的建模,描述顺序存储结构在内存中的抽象表示及指向顺序存储结构的指针变量的指向区域与偏移;
B、定义通过指针访问顺序存储结构的迁移操作,提出安全范围判别保证操作安全性;
C、定义通过指针访问顺序存储结构的谓词操作。
步骤A对顺序存储结构进行适用于数据流分析的建模过程如下:
对于C程序中的一个变量p,当p为数组变量时,其模型表示为<Var,Region,Domain>,此时取值区间为各数组元素区域信息,其中由某个数组元素索引与其对应区域构成;当p为指针变量时,Domain={d1,d2,…,dn}为p指向区域与对应偏移的集合,其中di=<PtRegion,Offset>,PtRegion为指针变量p指向的内存对象Var对应区域,且Offset是一个整型表达式,表示偏离指向基址的偏移量对应的整型区间。
步骤B中通过指针访问顺序存储结构的迁移操作的过程如下:
安全范围判别是指在执行迁移操作前,对指针变量指向区域偏移将发生的增大或缩小进行预先判定,若超出顺序存储结构的索引下界或上界,则提示out of bounds警告。
指针访问顺序存储结构的操作包括值访问与地址访问两种。
其中,地址访问的迁移操作分析过程如下:
判断该操作是否是指针自加或自减操作,
若是,则确定自加或自减符号,根据变量指向区域与偏移确定后一个或前一个对象x;
若否,则判断是否为数组变量或指针变量或数组元素取地址与整型表达式的加减操作;若否,分析结束;若是,则确定整型表达式的值,根据数组变量或指针变量或数组元素取地址确定右端对象x;
判断对象x是否存在,
若不存在,则提示out of bounds警告后,分析结束;
若存在,则判断对象x是否已经抽象表示;若是,则左端更新符合表达式、基址、指向区域、偏移区间后,分析结束;若否,则先对对象x进行抽象建模,再左端更新符合表达式、基址、指向区域、偏移区间后,分析结束。
假定在程序点l处,
Figure GDA0003700447020000071
表示获得内存对象var对应区域r,
Figure GDA0003700447020000072
为指针变量p指向区域的集合,
Figure GDA0003700447020000073
表示获得区域r对应的基址区域,length为该区域单元个数即长度,
Figure GDA0003700447020000074
表示获得区域r偏离基址区域的偏移区间offset,
Figure GDA0003700447020000075
表示根据区域r获得符号表达式,
Figure GDA0003700447020000076
表示根据符号表达式SExp获得具体抽象取值区间Domain。
Figure GDA0003700447020000081
值访问的迁移操作分析过程如下:
判断该操作是否为指针引用顺序存储结构元素操作,
若否,则先确定指针变量当前指向区域对应对象,然后对指针变量指向对象的取值区间进行区间并操作,再将生成的新区间赋值给左端变量后,分析结束;
若是,则先确定指针变量当前指向区域与偏移,然后引用顺序存储结构元素x,再判断x是否存在;
若不存在,则提示out of bounds警告后,分析结束;
若存在,则判断对象x是否已经抽象表示;若是,则将生成的新区间赋值给左端变量后,分析结束;若否,则先对x进行抽象建模,再将生成的新区间赋值给左端变量后,分析结束。
Figure GDA0003700447020000091
谓词操作分析过程如下:
先确定关系符号左右两端对象x、y,再判断x、y是否都存在,若否,则分析结束;
若是,则判断x、y是否存在共同基址,
若不存在,则分析结束;
若存在,则先取出满足两端存在共同基址的部分(m、n),对相应的指针变量进行指向区域和偏移区间的更新,再判断m、n的偏移区间是否全部或部分满足关系;
若否,则分析结束;
若是,则取出此时指针变量对应的指向区域与偏移区间后,分析结束。
假定flag标记条件的布尔值,True表示条件为真,False表示条件为假,True orFalse表示无法判断。
Figure GDA0003700447020000101
本发明的抽象内存模型相比现有的大多数抽象内存模型,可实现对顺序存储结构上发生偏移的性质进行有效刻画,同时通过定义的迁移操作及谓词操作可准确描述指针访问顺序存储结构的过程,并保证操作的安全性。
应用例1:
如,下面的代码段:
Figure GDA0003700447020000111
用本发明所提出的抽象内存模型对代码中的部分变量进行建模,分析得出L6行结构体变量x的模型表示为<x,usm_0,{}>;L7行变量i用本模型表示为<i,bm_1,i_01,[-inf,inf]>,[-inf,inf]用来标识函数内数值型变量取值区间未知,同时变量value可表示为<value,bm_2,1>;L8行指针变量fmt指向整型变量i,其模型表示为<fmt,pm_3,fmt_45,{<bm_1,[0,0]>}>,其中指针指向基本类型变量时其偏移区间固定为[0,0],其次无法确定指针变量ptr的指向,故其模型表示为<ptr,pm_7,ptr_1011,{<wild,[0,0]>}>,其中野指针指向地址的区域编号为“wild”,Offset初始区间为[0,0];同样地,L9行指针变量buf、line、more可分别表示为<buf,pm_8,buf_1213,{<wild,[0,0]>}>、<line,pm_9,line_1415,{<wild,[0,0]>}>,<more,pm_10,more_1617,{<wild,[0,0]>}>;L10行在为结构体变量x的成员data赋值后,x.data用模型表示为<x.data,ubm_11,3.0>,同时变量x模型更新为<x,usm_0,{data:3.0}>;L11行执行结束后,变量buf的模型表示为<buf,pm_8,buf_1819,{<mbm_12_8,[0,0]>}>。
对于代码中地址访问操作分析过程如下:代码L12行执行完成后指针变量line指向发生变化,指向元素buf[5],其模型表示为<line,pm_9,line_2021,{<bm_15,[5,5]>}>,其中“bm_15”为buf[5]的区域编号。在代码L13行,指针变量line先执行自加操作,其模型表示为<line,pm_9,line_2425,{<bm_16,[6,6]>}>,指向区域及偏移区间均发生变化。同样地,在执行对指针变量more的赋值操作后,more的模型表示为<more,pm_10,more_2829,{<bm_16,[6,6]>}>。若满足if条件,则在L14行执行时,line应指向buf[8],但超过连续内存索引上界,提示out of Bounds警告。
对于代码中的值访问操作分析过程如下:在L22行语句执行前,指针变量ptr指向两个内存对象x.result[0]与x.result[5],故其模型表示为<ptr,pm_7,ptr_4445,{<ubm_19,[0,0]>,<ubm_20,[5,5]>}>,同时,x.result的模型表示更新为<x.result,uam_18,{<0,ubm_19>,<5,ubm_20>}>;当执行L22行时,通过指向区域获得对应区域的符号表达式x.result[0]_3637、x.result[5]_4041,并依据符号表达式获取当前x.result[0]与x.result[5]的取值均为[-inf,inf],同时取并集为[-inf,inf],其次生成新的符号表达式并与[-inf,inf]之间建立映射关系。在L23行执行时,因区域{“ubm_20”}对应偏移为[5,5],[5,5]+value+2后将超出x.result的索引上界,提示out of Bounds警告,因此该行只根据区域{“ubm_19”}进行计算,与L22行过程类似。
对于示例代码中谓词操作的分析过程如下:L14行代码分析可得,条件右端指向buf[6],左端指向buf[5],两者存在共同基址,同时左端偏移区间[5,5]与右端偏移区间[6,6]满足小于等于关系,故该条件为真,一定执行if语句块内代码。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (5)

1.一种基于抽象内存模型的数据流分析方法,具体用于面向C程序顺序存储结构的静态分析,其特征在于,包括以下几个步骤:
A、对顺序存储结构进行适用于数据流分析的建模,描述顺序存储结构在内存中的抽象表示及指向顺序存储结构的指针变量的指向区域与偏移;
B、通过指针访问顺序存储结构的迁移操作,提出安全范围判别;
C、通过指针访问顺序存储结构的谓词操作,以保证操作安全性;
所述步骤A中对顺序存储结构进行适用于数据流分析的建模过程如下:
对于C程序中的一个变量p,当p为数组变量时,其模型表示为<Var,Region,Domain>,此时取值区间为各数组元素区域信息,当p为指针变量时,Domain={d1,d2,…,dn}为p指向区域与对应偏移的集合,其中di=<PtRegion,Offset>,PtRegion为指针变量p指向的内存对象Var对应区域,且Offset是一个整型表达式,表示偏离指向基址的偏移量对应的整型区间;
所述步骤B中指针访问顺序存储结构的迁移操作包括地址访问,所述地址访问的迁移操作分析过程如下:
判断该操作是否是指针自加或自减操作,
若是,则确定自加或自减符号,根据变量指向区域与偏移确定后一个或前一个对象x;
若否,则判断是否为数组变量或指针变量或数组元素取地址与整型表达式的加减操作;若否,分析结束;若是,则确定整型表达式的值,根据数组变量或指针变量或数组元素取地址确定右端对象x;
判断对象x是否存在,
若不存在,则提示out of bounds警告后,分析结束;
若存在,则判断对象x是否已经抽象表示;若是,则左端更新符合表达式、基址、指向区域、偏移区间后,分析结束;若否,则先对对象x进行抽象建模,再左端更新符合表达式、基址、指向区域、偏移区间后,分析结束。
2.根据权利要求1所述的一种基于抽象内存模型的数据流分析方法,其特征在于,所述步骤B中通过指针访问顺序存储结构的迁移操作的过程如下:
安全范围判别是指在执行迁移操作前,对指针变量指向区域偏移将发生的增大或缩小进行预先判定,若超出顺序存储结构的索引下界或上界,则提示out of bounds警告。
3.根据权利要求1所述的一种基于抽象内存模型的数据流分析方法,其特征在于,指针访问顺序存储结构的迁移操作还包括值访问。
4.根据权利要求3所述的一种基于抽象内存模型的数据流分析方法,其特征在于,值访问的迁移操作分析过程如下:
判断该操作是否为指针引用顺序存储结构元素操作,
若否,则先确定指针变量当前指向区域对应对象,然后对指针变量指向对象的取值区间进行区间并操作,再将生成的新区间赋值给左端变量后,分析结束;
若是,则先确定指针变量当前指向区域与偏移,然后引用顺序存储结构元素,再判断x是否存在;
若不存在,则提示out of bounds警告后,分析结束;
若存在,则判断对象x是否已经抽象表示;若是,则将生成的新区间赋值给左端变量后,分析结束;若否,则先对x进行抽象建模,再将生成的新区间赋值给左端变量后,分析结束。
5.根据权利要求1所述的一种基于抽象内存模型的数据流分析方法,其特征在于,谓词操作分析过程如下:
先确定关系符号左右两端对象x、y,再判断x、y是否都存在,
若否,则分析结束;
若是,则判断x、y是否存在共同基址,
若不存在,则分析结束;
若存在,则先取出满足两端存在共同基址的部分m、n,对相应的指针变量进行指向区域和偏移区间的更新,再判断m、n的偏移区间是否全部或部分满足关系;
若否,则分析结束;
若是,则取出此时指针变量对应的指向区域与偏移区间后,分析结束。
CN201910832877.XA 2019-09-04 2019-09-04 一种基于抽象内存模型的数据流分析方法 Expired - Fee Related CN110633212B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910832877.XA CN110633212B (zh) 2019-09-04 2019-09-04 一种基于抽象内存模型的数据流分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910832877.XA CN110633212B (zh) 2019-09-04 2019-09-04 一种基于抽象内存模型的数据流分析方法

Publications (2)

Publication Number Publication Date
CN110633212A CN110633212A (zh) 2019-12-31
CN110633212B true CN110633212B (zh) 2022-07-26

Family

ID=68970204

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910832877.XA Expired - Fee Related CN110633212B (zh) 2019-09-04 2019-09-04 一种基于抽象内存模型的数据流分析方法

Country Status (1)

Country Link
CN (1) CN110633212B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999426A (zh) * 2012-11-30 2013-03-27 北京邮电大学 基于抽象内存模型的非数值型数据的计算方法
CN103218296A (zh) * 2013-04-22 2013-07-24 北京邮电大学 一种充分检测空指针引用缺陷的方法
CN103744776A (zh) * 2013-11-04 2014-04-23 北京邮电大学 一种基于符号化函数摘要的静态分析方法及系统
CN108932137A (zh) * 2018-07-17 2018-12-04 西安航空学院 一种基于推测多线程的汇编级过程间指针分析方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785777B2 (en) * 2014-12-19 2017-10-10 International Business Machines Corporation Static analysis based on abstract program representations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999426A (zh) * 2012-11-30 2013-03-27 北京邮电大学 基于抽象内存模型的非数值型数据的计算方法
CN103218296A (zh) * 2013-04-22 2013-07-24 北京邮电大学 一种充分检测空指针引用缺陷的方法
CN103744776A (zh) * 2013-11-04 2014-04-23 北京邮电大学 一种基于符号化函数摘要的静态分析方法及系统
CN108932137A (zh) * 2018-07-17 2018-12-04 西安航空学院 一种基于推测多线程的汇编级过程间指针分析方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于区域内存模型的C程序静态分析;董玉坤等;《软件学报》;20140228;全文 *

Also Published As

Publication number Publication date
CN110633212A (zh) 2019-12-31

Similar Documents

Publication Publication Date Title
Mellor-Crummey On-the-fly detection of data races for programs with nested fork-join parallelism
Xu et al. Detecting inefficiently-used containers to avoid bloat
CN102073589B (zh) 一种基于代码静态分析的数据竞争检测方法及系统
Andersen Model checking and boolean graphs
US8359583B2 (en) Methods for selectively pruning false paths in graphs that use high-precision state information
Yang et al. Efficient stateful dynamic partial order reduction
CN103218296B (zh) 一种充分检测空指针引用缺陷的方法
KR20060045568A (ko) 프로그램 계측 동안의 프로브 최적화 방법 및 시스템
CN102073588A (zh) 一种基于代码静态分析的多线程死锁检测方法及系统
KR101334806B1 (ko) 테스트 케이스 자동 생성 시스템에서 테스트 케이스를 구성하는 입력값의 집합을 자동으로 산출하는 방법
CN104360947A (zh) 一种基于petri网的多进程死锁检测方法
Janjusic et al. Gleipnir: A memory profiling and tracing tool
Angerer et al. Points-to analysis of IEC 61131-3 programs: Implementation and application
CN101930401B (zh) 一种基于检测对象的软件漏洞模型检测方法
CN110633212B (zh) 一种基于抽象内存模型的数据流分析方法
CN103744776A (zh) 一种基于符号化函数摘要的静态分析方法及系统
KR20120038197A (ko) 멀티 트레드 프로그램에서 변수의 단독 메모리 접근여부를 분석하는 방법
CN102662829B (zh) 一种复杂数据结构在代码静态测试中的处理方法和装置
Belevantsev Multilevel static analysis for improving program quality
CN114462043A (zh) 基于强化学习的Java反序列化漏洞检测系统及方法
CN113220302A (zh) 面向物联网操作系统的代码缺陷静态检测方法和系统
CN107015909B (zh) 基于代码变更分析的测试方法及装置
CN110990648A (zh) 一种病毒查询方法、服务器及计算机可读存储介质
Singh et al. Design and implementation of testing tool for code smell rectification using c-mean algorithm
Schulz et al. Accelerating source-level timing simulation

Legal Events

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

Granted publication date: 20220726

CF01 Termination of patent right due to non-payment of annual fee