The present invention provides an executable programming optimization method, the method includes: when monitoring key instructions to the test program is executed, the input error in the path constraints in the constraint conditions; according to the external address of the function, using the instrumentation tool provides API access to external function; the path traversal search path. To solve the new constraints, trigger software error cases; monitoring of external function caused by symbol symbol transmission, transfer location code error. The invention provides an executable program programming optimization method, which improves the error location efficiency and optimizes the code error search process without reducing the code coverage rate.
【技术实现步骤摘要】
可执行程序编程优化方法
本专利技术涉及软件调试,特别涉及一种可执行程序编程优化方法。
技术介绍
软件调试在整个软件开发中占据相当大的开销。尽管软件企业在软件调试中已经投入巨资,但软件发行后仍然会被发现有严重的错误。在发行后再对软件错误进行修补,仍会造成严重的经济损失。研究发现,与软件相关的安全事件,其中大都是由在设计或者编码阶段引入的软件错误引起的。但确定一个静态源码检测到的错误是否是一个真实的错误需要花费大量的精力。对于软件错误的自动化检测和修补,现有技术存在以下方案,即不关心待测程序的内部执行情况,随机的产生用例,观察程序输出是否与预期的相符合,但其缺陷是代码覆盖率低,因此其错误检测能力有限。
技术实现思路
为解决上述现有技术所存在的问题,本专利技术提出了一种可执行程序编程优化方法,包括:步骤1:当监控到待测程序的关键指令被执行时,在路径约束条件中输入错误约束;步骤2:根据外部函数的地址,利用插桩工具提供的API获得外部函数名;步骤3:对路径进行遍历搜索,求解新的路径约束条件,产生触发软件错误的用例;步骤4:监控外部函数导致的符号传递,通过符号传递定位代码错误。优选地,其中在路径遍历搜索过程中,首先接受初始用例作为其参数,初始用例的边界设置为0,表明执行初始用例产生的路径约束条件从深度0开始都被否定,以产生新的路径约束条件;将初始用例加入到一个工作列表中;实际执行待测程序,其输入为初始用例,检测初始用例能否触发错误;当工作列表不为空时,则进入顶层循环的动态符号执行;依据是用例的分值,从工作列表中选择一个用例作为当前动态符号执行的输入,分值越高代表优先级越高 ...
【技术保护点】
一种可执行程序编程优化方法,其特征在于,包括:步骤1:当监控到待测程序的关键指令被执行时,在路径约束条件中输入错误约束;步骤2:根据外部函数的地址,利用插桩工具提供的API获得外部函数名;步骤3:对路径进行遍历搜索,求解新的路径约束条件,产生触发软件错误的用例;步骤4:监控外部函数导致的符号传递,通过符号传递定位代码错误。
【技术特征摘要】
1.一种可执行程序编程优化方法,其特征在于,包括:步骤1:当监控到待测程序的关键指令被执行时,在路径约束条件中输入错误约束;步骤2:根据外部函数的地址,利用插桩工具提供的API获得外部函数名;步骤3:对路径进行遍历搜索,求解新的路径约束条件,产生触发软件错误的用例;步骤4:监控外部函数导致的符号传递,通过符号传递定位代码错误。2.根据权利要求1所述的方法,其中在路径遍历搜索过程中,首先接受初始用例作为其参数,初始用例的边界设置为0,表明执行初始用例产生的路径约束条件从深度0开始都被否定,以产生新的路径约束条件;将初始用例加入到一个工作列表中;实际执行待测程序,其输入为初始用例,检测初始用例能否触发错误;当工作列表不为空时,则进入顶层循环的动态符号执行;依据是用例的分值,从工作列表中选择一个用例作为当前动态符号执行的输入,分值越高代表优先级越高;对待测程序进行动态符号执行,并生成新的用例集合;对集合中每一个用例进行实际执行,检测是否能够触发待测程序的错误,并对每个新用例进行评分;在检测内存函数错误时,将所有的输入标记为可疑点,表示所有的输入都是不可信的,然后追踪可疑点传递,当可疑点数据作为源操作数的时候,将指令的目的操作数也标记为可疑点,当可疑点数据传递到内存函数时,即可疑点数...
【专利技术属性】
技术研发人员:赖真霖,文君,
申请(专利权)人:成都四象联创科技有限公司,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。