The invention provides an automatic detection and correction method of code, the method includes: measuring program for monitoring treatment, when the key instruction is executed, the input error constraint in the path constraints in the detection of the current operation constraint errors on the path, and the error constraint marker; according to the function of the external function judging whether the function is a function of corresponding model; if the function has a corresponding model, whether the parameters to determine the function of the related symbols, if the function of parameters associated with the symbol, execute function model, tracking symbol transmission, followed by the actual implementation. The invention proposes a method of automatic code detection and correction, which improves the efficiency of error location and optimizes the code error search process without reducing the code coverage rate.
【技术实现步骤摘要】
代码自动检测和校正方法
本专利技术涉及软件调试,特别涉及一种代码自动检测和校正方法。
技术介绍
软件调试在整个软件开发中占据相当大的开销。尽管软件企业在软件调试中已经投入巨资,但软件发行后仍然会被发现有严重的错误。在发行后再对软件错误进行修补,仍会造成严重的经济损失。研究发现,与软件相关的安全事件,其中大都是由在设计或者编码阶段引入的软件错误引起的。但确定一个静态源码检测到的错误是否是一个真实的错误需要花费大量的精力。对于软件错误的自动化检测和修补,现有技术存在以下方案,即不关心待测程序的内部执行情况,随机的产生用例,观察程序输出是否与预期的相符合,但其缺陷是代码覆盖率低,因此其错误检测能力有限。
技术实现思路
为解决上述现有技术所存在的问题,本专利技术提出了一种代码自动检测和校正方法,包括:对待测程序进行监控,当关键指令被执行时,在路径约束条件中输入错误约束,检测当前运行路径上的错误的错误约束,并对错误约束进行标记;根据外部函数的函数名判断该函数是否有对应的函数模型;如果有对应的函数模型,判断函数的参数是否与符号相关,如果函数的参数与符号相关,则执行函数模型,追踪符号传递,随后进行实际执行。优选地,所述获得外部函数名后,如果没有对应的函数模型,则实际执行该函数。优选地,当所述代码错误为除零错误时,将无符号除和带符号除两种指令视为关键指令,当符号作为除数时,生成错误约束,并输入到路径约束条件中,通过求解新路径约束条件,获得可以触发除零错误的用例。优选地,当所述代码错误为函数参数错误时,对需要检测的函数插桩,当关键函数被调用且函数参数与符号相关时则生成错误约束, ...
【技术保护点】
一种代码自动检测和校正方法,其特征在于,包括:对待测程序进行监控,当关键指令被执行时,在路径约束条件中输入错误约束,检测当前运行路径上的错误的错误约束,并对错误约束进行标记;根据外部函数的函数名判断该函数是否有对应的函数模型;如果有对应的函数模型,判断函数的参数是否与符号相关,如果函数的参数与符号相关,则执行函数模型,追踪符号传递,随后进行实际执行。
【技术特征摘要】
1.一种代码自动检测和校正方法,其特征在于,包括:对待测程序进行监控,当关键指令被执行时,在路径约束条件中输入错误约束,检测当前运行路径上的错误的错误约束,并对错误约束进行标记;根据外部函数的函数名判断该函数是否有对应的函数模型;如果有对应的函数模型,判断函数的参数是否与符号相关,如果函数的参数与符号相关,则执行函数模型,追踪符号传递,随后进行实际执行。2.根据权利要求1所述的方法,其特征在于,所述获得外部函数名后,如果没有对应的函数模型,则实际执行该函数。3.根据权利要求1所述的方法,其特征在于,当所述代码错误为除零错误时,将无符号除和带符号除两种指令视为关键指令,当符号作为除数时,生成错误约束,并输入到路径约束条件中,通过求解新路径约束条件,获得可以触发除零错误的用例。4.根据权利要求1所述的方法,其特征在于,当所述代码错误为函数参数错误时,对需要检测的函数插桩,当关键函数被调用且函数参数与符号相关时则生成错误约束,并输入到路径约束条件中,在对关键函数进行插桩时,利用插桩工具Pin对导...
【专利技术属性】
技术研发人员:赖真霖,文君,
申请(专利权)人:成都四象联创科技有限公司,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。