一种实现代码分析的方法及装置制造方法及图纸

技术编号:14583312 阅读:128 留言:0更新日期:2017-02-08 13:20
本发明专利技术公开了一种实现代码分析的方法及装置,用于提高代码分析效率,该方法包括:在源代码中的各个程序段的起始行之后添加第一标记,第一标记用于当该程序段被执行时记录该程序段的起始行行号;在源代码的各个判断分支之后添加第二标记,第二标记用于当该判断分支被执行时记录该判断分支的行号;运行添加标记后的源代码;在添加标记后的源代码的运行过程中,根据第一标记在日志文件中记录被执行的程序段的起始行行号,根据第二标记在日志文件中记录被执行的判断分支的行号;根据日志文件以及添加标记后的源代码,获取被执行的程序段的程序名以及被执行的判断分支的判断分支名;显示被执行的程序段的程序名以及被执行的判断分支的判断分支名。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体涉及一种实现代码分析的方法及装置
技术介绍
随着应用业务的发展,实现应用业务的程序代码也越来越复杂,随着代码行数的日益庞大,代码维护越来越困难、成本越来越高。在现有的程序代码分析过程中,一般在怀疑有问题的代码部分进行标记,通过运行代码验证猜测是否正确,对于简短的程序该分析方法效率比较高,但是针对庞大且存在复杂判断条件的源代码,在分析的过程中很难准确获知判断条件的哪些分支被执行,无法全面准确地对代码进行分析、代码分析效率低下、维护成本较高。
技术实现思路
有鉴于此,本专利技术提供一种实现代码分析的方法及装置,以解决现有技术中无法全面准确地对复杂代码进行分析、代码分析效率低下的技术问题。为解决上述问题,本专利技术提供的技术方案如下:一种实现代码分析的方法,所述方法包括:在源代码中的各个程序段的起始行之后添加第一标记,所述第一标记用于当该程序段被执行时记录该程序段的起始行行号;在所述源代码的各个判断分支之后添加第二标记,所述第二标记用于当该判断分支被执行时记录该判断分支的行号;运行添加标记后的源代码;在所述添加标记后的源代码的运行过程中,根据所述第一标记在日志文件中记录被执行的程序段的起始行行号,根据所述第二标记在所述日志文件中记录被执行的判断分支的行号;根据所述日志文件以及所述添加标记后的源代码,获取所述被执行的程序段的程序名以及被执行的判断分支的判断分支名;显示所述被执行的程序段的程序名以及被执行的判断分支的判断分支名。相应的,所述方法还包括:如果所述源代码包括交易码和/或交易流水号,在所述添加标记后的源代码的运行过程中,在所述日志文件中记录被执行的交易码和/或交易流水号。相应的,根据所述日志文件以及所述添加标记后的源代码,获取所述被执行的程序段的程序名以及被执行的判断分支的判断分支名,包括:从所述日志文件中获取所述被执行的程序段的起始行行号,根据所述被执行的程序段的起始行行号从所述添加标记后的源代码中查找获取对应的所述被执行的程序段的程序名;从所述日志文件中获取所述被执行的判断分支的行号,根据所述被执行的判断分支的行号从所述添加标记后的源代码中查找获取对应的所述被执行的判断分支的判断分支名。相应的,所述方法还包括:根据所述日志文件获取所述被执行的程序段的执行顺序值以及所述被执行的判断分支的执行顺序值;显示所述被执行的程序段的执行顺序值以及所述被执行的判断分支的执行顺序值。相应的,所述显示所述被执行的程序段的程序名以及被执行的判断分支的判断分支名,包括:高亮显示所述被执行的程序段的程序名以及被执行的判断分支的判断分支名;所述显示所述被执行的程序段的执行顺序值以及所述被执行的判断分支的执行顺序值,包括:高亮显示所述被执行的程序段的执行顺序值以及所述被执行的判断分支的执行顺序值。一种实现代码分析的装置,所述装置包括:第一添加单元,用于在源代码中的各个程序段的起始行之后添加第一标记,所述第一标记用于当该程序段被执行时记录该程序段的起始行行号;第二添加单元,用于在所述源代码的各个判断分支之后添加第二标记,所述第二标记用于当该判断分支被执行时记录该判断分支的行号;运行单元,用于运行添加标记后的源代码;第一记录单元,用于在所述添加标记后的源代码的运行过程中,根据所述第一标记在日志文件中记录被执行的程序段的起始行行号,根据所述第二标记在所述日志文件中记录被执行的判断分支的行号;第一获取单元,用于根据所述日志文件以及所述添加标记后的源代码,获取所述被执行的程序段的程序名以及被执行的判断分支的判断分支名;第一显示单元,用于显示所述被执行的程序段的程序名以及被执行的判断分支的判断分支名。相应的,所述装置还包括:第二记录单元,用于如果所述源代码包括交易码和/或交易流水号,在所述添加标记后的源代码的运行过程中,在所述日志文件中记录被执行的交易码和/或交易流水号。相应的,所述第一获取单元包括:第一获取子单元,用于从所述日志文件中获取所述被执行的程序段的起始行行号;第一查找子单元,用于根据所述被执行的程序段的起始行行号从所述添加标记后的源代码中查找获取对应的所述被执行的程序段的程序名;第二获取子单元,用从所述日志文件中获取所述被执行的判断分支的行号;第二查找子单元,用于根据所述被执行的判断分支的行号从所述添加标记后的源代码中查找获取对应的所述被执行的判断分支的判断分支名。相应的,所述装置还包括:第二获取单元,用于根据所述日志文件获取所述被执行的程序段的执行顺序值以及所述被执行的判断分支的执行顺序值;第二显示单元,用于显示所述被执行的程序段的执行顺序值以及所述被执行的判断分支的执行顺序值。相应的,所述第一显示单元具体用于:高亮显示所述被执行的程序段的程序名以及被执行的判断分支的判断分支名;所述第二显示单元具体用于:高亮显示所述被执行的程序段的执行顺序值以及所述被执行的判断分支的执行顺序值。由此可见,本专利技术实施例具有如下有益效果:本专利技术实施例通过在源代码中添加标记,在运行添加了标记的源代码时,可以在日志文件中记录源代码中被执行的程序段以及被执行的判断分支并可以对被执行的程序段的程序名以及被执行的判断分支的判断分支名进行高亮显示,使复杂的代码逻辑简单清晰化,帮助代码分析人员快速理清代码的运行过程,全面准确地对代码进行分析,提高了代码分析的效率。附图说明图1为本专利技术实施例中实现代码分析的方法实施例的流程图;图2为本专利技术实施例中实现代码分析的装置实施例的示意图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术实施例作进一步详细的说明。本专利技术实施例中提供的实现代码分析的方法及装置,是针对现有技术中针对庞大且存在复杂判断条件的源代码,在分析过程中很难准确获知判断条件的哪些分支被执行,无法全面准确地对代码进行分析、代码分析效率低下、维护成本较高的技术问题,提出将复杂的程序代码格式化,在源代码的各个程序段的开始以及各个条件分支处进行标记,实现在源代码的运行过程中在日志文件中记录所有经过的程序段以及经过的判断分支,并日志文件以及添加标记后的源代码将被执行的程序段的程序名以及被执行的判断分支的判断分支名进行高亮显示,以便于代码问题分析,提高代码分析效率,特别是针对庞大且存在复杂判断条件的源代码,代码分析效率提高明显。基于上述思想,参见图1所示,本专利技术实施例中提供的实现代码分析的方法实施例,可以包括以下步骤:步骤101:在源代码中的各个程序段的起始行之后添加第一标记,第一标记用于当该程序段被执行时记录该程序段的起始行行号。各个程序段的起始行通常会是该程序段的程序名,程序段的程序名可以有固定的格式,通过识别程序段的程序名确定各个程序段的起始行位置,在每个程序段的起始行之后均添加第一标记,第一标记可以用于当该程序段被执行时记录该程序段的起始行行号。例如,程序段A的起始行的行号为0016行,则可以在起始行的下一行添加第一标记,当程序段A被执行则第一标记内的代码内容也被执行,这样程序段A被执行时可以在日志文件中记录程序段A的起始行行号0016。步骤102:在源代码的各个判断分支之后添加第二标记,第二标记用于当该判断分支被执行时记录该判断分支的行号。可以通过判断分支的关键词本文档来自技高网...

【技术保护点】
一种实现代码分析的方法,其特征在于,所述方法包括:在源代码中的各个程序段的起始行之后添加第一标记,所述第一标记用于当该程序段被执行时记录该程序段的起始行行号;在所述源代码的各个判断分支之后添加第二标记,所述第二标记用于当该判断分支被执行时记录该判断分支的行号;运行添加标记后的源代码;在所述添加标记后的源代码的运行过程中,根据所述第一标记在日志文件中记录被执行的程序段的起始行行号,根据所述第二标记在所述日志文件中记录被执行的判断分支的行号;根据所述日志文件以及所述添加标记后的源代码,获取所述被执行的程序段的程序名以及被执行的判断分支的判断分支名;显示所述被执行的程序段的程序名以及被执行的判断分支的判断分支名。

【技术特征摘要】
1.一种实现代码分析的方法,其特征在于,所述方法包括:在源代码中的各个程序段的起始行之后添加第一标记,所述第一标记用于当该程序段被执行时记录该程序段的起始行行号;在所述源代码的各个判断分支之后添加第二标记,所述第二标记用于当该判断分支被执行时记录该判断分支的行号;运行添加标记后的源代码;在所述添加标记后的源代码的运行过程中,根据所述第一标记在日志文件中记录被执行的程序段的起始行行号,根据所述第二标记在所述日志文件中记录被执行的判断分支的行号;根据所述日志文件以及所述添加标记后的源代码,获取所述被执行的程序段的程序名以及被执行的判断分支的判断分支名;显示所述被执行的程序段的程序名以及被执行的判断分支的判断分支名。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:如果所述源代码包括交易码和/或交易流水号,在所述添加标记后的源代码的运行过程中,在所述日志文件中记录被执行的交易码和/或交易流水号。3.根据权利要求1所述的方法,其特征在于,根据所述日志文件以及所述添加标记后的源代码,获取所述被执行的程序段的程序名以及被执行的判断分支的判断分支名,包括:从所述日志文件中获取所述被执行的程序段的起始行行号,根据所述被执行的程序段的起始行行号从所述添加标记后的源代码中查找获取对应的所述被执行的程序段的程序名;从所述日志文件中获取所述被执行的判断分支的行号,根据所述被执行的判断分支的行号从所述添加标记后的源代码中查找获取对应的所述被执行的判断分支的判断分支名。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述日志文件获取所述被执行的程序段的执行顺序值以及所述被执行的判断分支的执行顺序值;显示所述被执行的程序段的执行顺序值以及所述被执行的判断分支的执行顺序值。5.根据权利要求4所述的方法,其特征在于,所述显示所述被执行的程序段的程序名以及被执行的判断分支的判断分支名,包括:高亮显示所述被执行的程序段的程序名以及被执行的判断分支的判断分支名;所述显示所述被执行的程序段的执行顺序值以及所述被执行的判断分支的执行顺序值,包括:高亮显示所述被执行的程序段的执行顺序值以及所述被执行的判断分支的执行顺序值。6.一种实现代码分析...

【专利技术属性】
技术研发人员:李聚良陈树伟张凤玲
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1