PROOF-GUIDED ERROR DIAGNOSIS (PED) BY TRIANGULATION OF PROGRAM ERROR CAUSES
    2.
    发明申请
    PROOF-GUIDED ERROR DIAGNOSIS (PED) BY TRIANGULATION OF PROGRAM ERROR CAUSES 审中-公开
    通过三角计划错误原因进行验证错误诊断(PED)

    公开(公告)号:US20090292941A1

    公开(公告)日:2009-11-26

    申请号:US12331243

    申请日:2008-12-09

    IPC分类号: G06F11/07

    CPC分类号: G06F11/366 G06F11/3636

    摘要: Systems and methods are disclosed for performing error diagnosis of software errors in a program by from one or more error traces, building a repair program containing one or more modified program semantics corresponding to fixes to observed errors; encoding the repair program with constraints, biases and priortization into a constraint weighted problem; and solving the constraint weighted problem to generate one or more repair solutions, wherein the encoding includes at least one of: a) constraining one or more repairs choices guided by automatically inferring one or more partial specifications of intended program behaviors and program structure; b) biasing one or more repair choices guided by typical programming mistakes; and c) prioritizing the repair solutions based on error locations and possible changes in program semantics.

    摘要翻译: 公开了系统和方法,用于通过一个或多个错误跟踪来执行程序中软件错误的错误诊断,构建包含对应于观察到的错误的修复的一个或多个修改的程序语义的修复程序; 编码修复程序的约束,偏见和优化成约束加权问题; 以及解决所述约束加权问题以产生一个或多个修复解决方案,其中所述编码包括以下至少一个:a)通过自动推断一个或多个预期程序行为和程序结构的部分规范来约束一个或多个维修选择; b)偏向一个或多个由典型编程错误引导的维修选择; 以及c)基于错误位置和程序语义的可能变化对修复方案进行优先排序。

    Donut domains—efficient non-convex domains for abstract interpretation
    4.
    发明授权
    Donut domains—efficient non-convex domains for abstract interpretation 有权
    甜甜圈域效率非凸域用于抽象解释

    公开(公告)号:US08719790B2

    公开(公告)日:2014-05-06

    申请号:US13428608

    申请日:2012-03-23

    IPC分类号: G06F9/44 H04N5/33 G06F17/30

    CPC分类号: G06F11/3608

    摘要: A computer implemented program analysis method employing a set of new abstract domains applicable to non-convex invarients. The method analyzes programs statically using abstract interpretation while advantageously considering non-convex structures and in particular those situations in which an internal region of an unreachable state exists within a larger region of reachable states. The method employs a new set of non-convex domains (donut domains) based upon the notion of an outer convex region of reachable states (Domain D1) and an inner region of unreachable states (Domain D2) which advantageously permits capture of non-convex properties by using convex regions and operations.

    摘要翻译: 一种计算机实现的程序分析方法,采用一组适用于非凸不可侵犯的新抽象域。 该方法使用抽象解释静态地分析程序,同时有利地考虑非凸结构,特别是在可达状态的较大区域内存在不可达状态的内部区域的情况。 该方法基于可达状态(域D1)的外部凸起区域和不可达状态的内部区域(域D2)的概念,采用新的非凸区域(环形区域),其有利地允许捕获非凸起 通过使用凸区域和操作的属性。

    CONTROL STRUCTURE REFINEMENT OF LOOPS USING STATIC ANALYSIS
    6.
    发明申请
    CONTROL STRUCTURE REFINEMENT OF LOOPS USING STATIC ANALYSIS 有权
    使用静态分析的控制结构修剪

    公开(公告)号:US20100205592A1

    公开(公告)日:2010-08-12

    申请号:US12701962

    申请日:2010-02-08

    IPC分类号: G06F9/45

    CPC分类号: G06F8/443 G06F8/433

    摘要: A system and method for discovering a set of possible iteration sequences for a given loop in a software program is described, to transform the loop representation. In a program containing a loop, the loop is partitioned into a plurality of portions based on splitting criteria. Labels are associated with the portions, and an initial loop automaton is constructed that represents the loop iterations as a regular language over the labels corresponding to the portions in the program. Subsequences of the labels are analyzed to determine infeasibility of the subsequences permitted in the automaton. The automaton is refined by removing all infeasible subsequences to discover a set of possible iteration sequences in the loop. The resulting loop automaton is used in a subsequent program verification or analysis technique to find violations of correctness properties in programs.

    摘要翻译: 描述了用于在软件程序中发现给定循环的一组可能的迭代序列的系统和方法,以变换循环表示。 在包含循环的程序中,基于分割标准将循环分成多个部分。 标签与这些部分相关联,并且构建了一个初始循环自动机,它将循环迭代表示为与程序中的部分相对应的标签上的常规语言。 分析标签的子序列,以确定自动机中允许的子序列的不可行性。 通过去除所有不可行子序列来发现循环中的一组可能的迭代序列来改进自动机。 所产生的循环自动机被用于随后的程序验证或分析技术中以发现程序中的正确性属性的违反。

    Analysis of Interactions of C and C++ Strings
    9.
    发明申请
    Analysis of Interactions of C and C++ Strings 审中-公开
    C和C ++字符串的相互作用分析

    公开(公告)号:US20120233584A1

    公开(公告)日:2012-09-13

    申请号:US13416358

    申请日:2012-03-09

    IPC分类号: G06F9/44

    CPC分类号: G06F8/51 G06F8/443

    摘要: A computer implemented method for analyzing a computer software program comprising both C++ and C string components, wherein the method includes building a memory model abstraction of any memory used by the program strings. Various memory models are presented that find invalid memory accesses in terms of validity of memory regions and buffer overflows. The model supports analyzing the interaction of C and C++ components—in particular, it focuses on the interaction of C and C++ strings. The conversion of C++ strings to C strings is accomplished through a non-transferable ownership attribute that is to be respected by the C strings. The models can then be analyzed using static analysis techniques such as abstract interpretation and model checking, or through dynamic analysis. In so doing we allow discovery of potential memory safety violations in programs involving conversions between C and C++ strings.

    摘要翻译: 一种用于分析包括C ++和C字符串组件的计算机软件程序的计算机实现的方法,其中所述方法包括构建由程序串使用的任何存储器的存储器模型抽象。 提出了各种存储器模型,它们根据存储器区域和缓冲区溢出的有效性找到无效的存储器访问。 该模型支持分析C和C ++组件的交互,特别是C和C ++字符串的交互。 将C ++字符串转换为C字符串是通过C字符串要遵守的不可转移的所有权属性来实现的。 然后可以使用静态分析技术(如抽象解释和模型检查)或通过动态分析来分析模型。 在这样做的时候,我们允许在涉及C和C ++字符串之间的转换的程序中发现潜在的内存安全违规。