【技术实现步骤摘要】
一种代码检查方法和相关设备
[0001]本申请涉及代码静态分析领域,尤其涉及一种代码检查方法和相关设备,用于对待检查代码的缺陷代码进行检查。
技术介绍
[0002]对代码的静态检查技术是一种在不运行代码的情况下,检查代码中是否存在违反编码规则的情况,以保障代码质量和安全性。但是,一般的大型软件系统中往往有自己特殊的编码规则,一般的静态检查工具中不具有相应的检查逻辑及修复逻辑。为此,当前通常存在一种领域特定语言(domain specific language,DSL),用户可以基于该DSL对特殊的编码规则开发检查逻辑和修复逻辑。
[0003]其中一种DLS以Fortify、Coverity等深度静态分析工具为代表,提供特定缺陷类型的配置模板,用户可以基于特殊的编码规则,将与特定缺陷类型密切相关的程序元素按照配置模板进行配置,从而实现对代码中的具体缺陷的检查,缺陷指的是代码中违反编码规则的情况。但这种描述语言只能对特定缺陷类型指定检查规则,难以实现对未知缺陷类型指定检查规则,有着较大的局限性。
[0004]另外 ...
【技术保护点】
【技术特征摘要】
1.一种代码检查方法,其特征在于,包括:代码检查设备基于目标代码生成可视化的语法树;所述代码检查设备基于所述语法树生成缺陷模式;所述代码检查设备使用所述缺陷模式识别待检查代码中的缺陷代码。2.根据权利要求1所述方法,其特征在于,所述代码检查设备使用所述缺陷模式识别待检查代码中的缺陷代码包括:所述代码检查设备将所述缺陷模式转换为缺陷检查及修复语言DDRL语言的目标文本,所述DDRL语言为基于Clang ASTMatcher开发的语言;所述代码检查设备使用基于所述DDRL语言的执行引擎执行所述目标文本,以识别所述待检查代码中的缺陷代码。3.根据权利要求1或2所述方法,其特征在于,所述代码检查设备基于所述语法树生成缺陷模式包括:所述代码检查设备接收用户的第一操作;所述代码检查设备基于所述第一操作修改所述语法树,得到所述缺陷模式。4.根据权利要求1
‑
3中任一项所述方法,其特征在于,所述代码检查设备基于所述语法树生成缺陷模式之后,还包括:所述代码检查设备存储所述缺陷模式。5.根据权利要求1
‑
4中任一项所述方法,其特征在于,所述代码检查设备基于所述语法树生成缺陷模式之后,还包括:所述代码检查设备接收用户的第二操作;所述代码检查设备基于所述第二操作确定所述缺陷模式对应的修复模式;所述代码检查设备使用所述缺陷模式识别待检查代码中的缺陷代码之后,还包括:所述代码检查设备使用所述修复模式修复所述待检查代码中的缺陷代码。6.根据权利要求1
‑
5中任一项所述方法,其特征在于,所述方法还包括:所述代码检查设备获取待检查代码;所述代码检查设备接收用户的第三操作;所述代码检查设备基于所述第三操作确定所述待检查代码中的所述目标代码。7.一种代码检查设备,其特征在于,包括:处理模块,用于基于目标代码生成可视化的语法树;所述处理模块,还用于基于所述语法树生成缺陷模式;所述处理模块,还用于使用所述缺陷模式识别待检查代码中的缺陷代码。8.根据权利要求7所述设备,其特征在于,所述处理模块,具体用于:将所述缺陷模式转换为缺陷检查及修复语言DDRL语言的目标文本,所述DDRL语言为基于Clang ASTMatcher开发的语言;使用基于所述DDRL语言...
【专利技术属性】
技术研发人员:边攀,吴添勇,梁广泰,
申请(专利权)人:华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。