一种源代码的执行行为的监控方法和系统技术方案

技术编号:36540269 阅读:16 留言:0更新日期:2023-02-01 16:37
本发明专利技术公开了一种源代码的执行行为的监控方法和系统,属于程序分析领域。该方法包括:获取目标源代码,分析目标源代码,以获得语言类型;采用静态解析器,将目标源代码从原语言类型转换为C语言的代码;在模拟执行环境中执行C语言的代码,并在模拟执行过程中收集每一层循环的执行细节,以生成监控列表;调用可视化界面显示所述监控列表,可适用于不同语言的代码监控,且不需要修改程序源码;通过在模拟执行环境中执行C语言的代码,并在模拟执行过程中收集每一层循环的执行细节,以生成监控列表,调用可视化界面显示所述监控列表,可视化后的监控列表反映软件的业务逻辑和行为交互。后的监控列表反映软件的业务逻辑和行为交互。后的监控列表反映软件的业务逻辑和行为交互。

【技术实现步骤摘要】
一种源代码的执行行为的监控方法和系统


[0001]本专利技术属于程序分析领域,更具体地,涉及一种源代码的执行行为的监控方法和系统。

技术介绍

[0002]对日趋庞大的软件需求越来越多,软件的复杂度越来越高,可用性要求越来越强,软件系统却越来越脆弱,常常发生各种各样的问题,并对人们的工作生活带来不利的影响,甚至造成巨大的损失。软件运行状态的监控对实时健康状态分析、故障定位等都有比较重要的意义。
[0003]目前,软件分析是以软件为对象通过静态或动态的方法进行人工或自动分析。大多数软件的行为分析与验证方法及系统都是通过静态编码对待验证软件进行行为监测、分析和验证,不仅需要修改程序源码,且编程负担较重,缺乏监控与分析粒度的调控。在关注点方面,大多数监测仅关注软件本身,对软件业务逻辑和行为交互缺少有效的监测与验证。
[0004]因此,亟需一种能够监控软件业务逻辑和行为交互的方法。

技术实现思路

[0005]针对现有技术的缺陷,本专利技术的目的在于提供一种源代码的执行行为的监控方法和系统,旨在解决现有方法缺少对软件业务逻辑和行为交互有效的监测与验证的问题。
[0006]为实现上述目的,第一方面,本专利技术提供了一种源代码的执行行为的监控方法,该方法包括:
[0007]获取目标源代码,分析目标源代码,以获得语言类型;
[0008]采用静态解析器,将目标源代码从原语言类型转换为C语言的代码;
[0009]在模拟执行环境中执行C语言的代码,并在模拟执行过程中收集每一层循环的执行细节,以生成监控列表;
[0010]调用可视化界面显示所述监控列表。
[0011]优选地,所述静态解析器对目标源代码依据关键字和符号,进行词法分析;依据语法特征,构建抽象语法树;依据语义特征和抽象语法树,建立各个语法元素之间的关联;根据词法分析结果、抽象语法树和语法关联,构建C语言的代码。
[0012]优选地,所述在模拟执行过程中收集每一层循环的执行细节,以生成监控列表,包括:
[0013]记录当前执行语句的位置信息,并确定其在嵌套循环的层级结构中的位置;
[0014]求解当前执行语句中各条件表达式的真伪、各变量的值和表达式的值;
[0015]生成当前执行语句的监控结果,所述监控结果包括:位置信息、层次结构位置和包含求解结果的当前执行语句。
[0016]优选地,模拟执行时,从主函数或指定的函数开始,直至执行到函数的出口点或者执行到指定的步数为止。
[0017]优选地,所述调用可视化界面显示所述监控列表,包括:
[0018]根据层次结构位置,层次化缩进各监控结果,使得处于不同循环层的监控结果缩进量随着循环嵌套深度递增,处于同一循环层的监控结果缩进量相同。
[0019]优选地,根据层次结构位置,采用不同颜色显示各监控结果,使得处于不同循环层的监控结果颜色不相同,处于同一循环层的监控结果颜色相同。
[0020]优选地,该方法还包括:在模拟执行过程中收集各个函数的执行细节,以生成函数的依赖关系图。
[0021]为实现上述目的,第二方面,本专利技术提供了一种源代码的执行行为的监控系统,该系统包括:处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得第一方面所述的方法被执行。
[0022]总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有以下有益效果:
[0023]本专利技术提出了一种源代码的执行行为的监控方法和系统,通过采用静态解析器,将目标源代码从原语言类型转换为C语言的代码,可适用于不同语言的代码监控,且不需要修改程序源码;通过在模拟执行环境中执行C语言的代码,并在模拟执行过程中收集每一层循环的执行细节,以生成监控列表,调用可视化界面显示所述监控列表,可视化后的监控列表反映软件业务逻辑和行为交互。
附图说明
[0024]图1为本专利技术提供的一种源代码的执行行为的监控方法流程图。
[0025]图2为本实施例提供的目标源代码转换为C语言的代码示意图。
[0026]图3为本专利技术实施例提供的模拟执行结果示意图。
具体实施方式
[0027]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。
[0028]图1为本专利技术提供的一种源代码的执行行为的监控方法流程图。如图1所示,该方法包括:
[0029]获取目标源代码,分析目标源代码,以获得语言类型。
[0030]采用静态解析器,将目标源代码从原语言类型转换为C语言的代码。
[0031]优选地,所述静态解析器对目标源代码依据关键字和符号,进行词法分析;依据语法特征,构建抽象语法树;依据语义特征和抽象语法树,建立各个语法元素之间的关联;根据词法分析结果、抽象语法树和语法关联,构建C语言的代码。
[0032]在模拟执行环境中执行C语言的代码,并在模拟执行过程中收集每一层循环的执行细节,以生成监控列表。
[0033]优选地,所述在模拟执行过程中收集每一层循环的执行细节,以生成监控列表,包括:记录当前执行语句的位置信息,并确定其在嵌套循环的层级结构中的位置;求解当前执行语句中各条件表达式的真伪、各变量的值和表达式的值;生成当前执行语句的监控结果,
所述监控结果包括:位置信息、层次结构位置和包含求解结果的当前执行语句。
[0034]优选地,模拟执行时,从主函数或指定的函数开始,直至执行到函数的出口点或者执行到指定的步数为止。
[0035]调用可视化界面显示所述监控列表。
[0036]优选地,所述调用可视化界面显示所述监控列表,包括:根据层次结构位置,层次化缩进各监控结果,使得处于不同循环层的监控结果缩进量随着循环嵌套深度递增,处于同一循环层的监控结果缩进量相同。
[0037]优选地,根据层次结构位置,采用不同颜色显示各监控结果,使得处于不同循环层的监控结果颜色不相同,处于同一循环层的监控结果颜色相同。
[0038]优选地,该方法还包括:在模拟执行过程中收集各个函数的执行细节,以生成函数的依赖关系图。
[0039]本专利技术提供了一种源代码的执行行为的监控系统,该系统包括:处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得上述方法被执行。
[0040]实施例
[0041]本实施例以一个简单目标源代码为例说明。图2为本实施例提供的目标源代码转换为C语言的代码示意图。监控列表生成过程如下:
[0042](1)从函数体内的第一条语句开始模拟执行,直至执行到函数的出口点,即函数的结束花括号或return语句为止,或者执行到指定的步数为止;
[0043](2)每执行一行C语言代码,则生成对应监控结果,例如“9:flag=1”,9表示位置信息;...

【技术保护点】

【技术特征摘要】
1.一种源代码的执行行为的监控方法,其特征在于,该方法包括:获取目标源代码,分析目标源代码,以获得语言类型;采用静态解析器,将目标源代码从原语言类型转换为C语言的代码;在模拟执行环境中执行C语言的代码,并在模拟执行过程中收集每一层循环的执行细节,以生成监控列表;调用可视化界面显示所述监控列表。2.如权利要求1所述的方法,其特征在于,所述静态解析器对目标源代码依据关键字和符号,进行词法分析;依据语法特征,构建抽象语法树;依据语义特征和抽象语法树,建立各个语法元素之间的关联;根据词法分析结果、抽象语法树和语法关联,构建C语言的代码。3.如权利要求1所述的方法,其特征在于,所述在模拟执行过程中收集每一层循环的执行细节,以生成监控列表,包括:记录当前执行语句的位置信息,并确定其在嵌套循环的层级结构中的位置;求解当前执行语句中各条件表达式的真伪、各变量的值和表达式的值;生成当前执行语句的监控结果,所述监控结果包括:位置信息、层次结构位置和包含求...

【专利技术属性】
技术研发人员:张永选余顺琴洪如霞孔婷余宏来敏健
申请(专利权)人:豫章师范学院
类型:发明
国别省市:

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

1