Nowadays, one of the IT challenges faced by many enterprises is the maintenance of their legacy system and migration of those systems to modern and flexible platform. In this paper, we study the network properties of ...Nowadays, one of the IT challenges faced by many enterprises is the maintenance of their legacy system and migration of those systems to modern and flexible platform. In this paper, we study the network properties of software call graphs, and utilize the network theories to understand the business logic of legacy system. The call graphs turn out approximately scale-free and small world network properties. This finding provides new insight to understand the business logic of legacy system: the methods in a program can be naturedly partitioned into the business methods group and supportive methods group. Moreover, the result is also very helpful in reusing valuable functionality and identifying what services should be to expose in the migration from legacy to modern SOA context.展开更多
为了分析操作系统内核等大型软件的模块间函数调用关系,针对传统的函数调用关系生成工具不适用于模块间调用关系分析以及其依赖编译器具体特定版本等不足,提出一种基于寄存器传送语言(Register Transfer Language,RTL)的函数调用图生成...为了分析操作系统内核等大型软件的模块间函数调用关系,针对传统的函数调用关系生成工具不适用于模块间调用关系分析以及其依赖编译器具体特定版本等不足,提出一种基于寄存器传送语言(Register Transfer Language,RTL)的函数调用图生成方法,并根据该方法实现了一个生成模块间函数调用图的工具CG-RTL(call graph based on RTL,简称为CG-RTL).CGRTL首先从编译过程所生成的中间结果中提取出函数定义和调用关系信息,然后利用开源图形可视化工具Graphviz将其绘制出来,并最终将该功能集成到在线源代码浏览工具LXR中去.实验结果表明:通过该方法获得的函数调用关系与目标代码较为一致,而且可以分析用户指定模块间的函数调用关系,而且该方法同时可以生成相对应的函数调用关系列表,更加细致的描述函数调用关系.展开更多
针对目前大多数的函数调用关系分析工具无法分析函数指针、系统启动过程以及可加载模块的函数调用关系的现象,在CG-RTL的基础上提出了基于内核跟踪的动态函数调用图生成方法,并开发了动态函数调用图生成工具DCG-RTL(dynamic call graph ...针对目前大多数的函数调用关系分析工具无法分析函数指针、系统启动过程以及可加载模块的函数调用关系的现象,在CG-RTL的基础上提出了基于内核跟踪的动态函数调用图生成方法,并开发了动态函数调用图生成工具DCG-RTL(dynamic call graph based on RTL)。DCG-RTL在S2E模拟器中运行待跟踪内核,通过指令捕获插件和函数解析插件记录运行时的函数调用和返回信息,分析跟踪信息得到动态和静态函数调用关系,利用CG-RTL工具在浏览器中展示。实验结果表明,DCG-RTL能全面和准确地跟踪包括函数指针引用和可加载内核模块在内的函数调用关系。展开更多
文摘Nowadays, one of the IT challenges faced by many enterprises is the maintenance of their legacy system and migration of those systems to modern and flexible platform. In this paper, we study the network properties of software call graphs, and utilize the network theories to understand the business logic of legacy system. The call graphs turn out approximately scale-free and small world network properties. This finding provides new insight to understand the business logic of legacy system: the methods in a program can be naturedly partitioned into the business methods group and supportive methods group. Moreover, the result is also very helpful in reusing valuable functionality and identifying what services should be to expose in the migration from legacy to modern SOA context.
文摘为了分析操作系统内核等大型软件的模块间函数调用关系,针对传统的函数调用关系生成工具不适用于模块间调用关系分析以及其依赖编译器具体特定版本等不足,提出一种基于寄存器传送语言(Register Transfer Language,RTL)的函数调用图生成方法,并根据该方法实现了一个生成模块间函数调用图的工具CG-RTL(call graph based on RTL,简称为CG-RTL).CGRTL首先从编译过程所生成的中间结果中提取出函数定义和调用关系信息,然后利用开源图形可视化工具Graphviz将其绘制出来,并最终将该功能集成到在线源代码浏览工具LXR中去.实验结果表明:通过该方法获得的函数调用关系与目标代码较为一致,而且可以分析用户指定模块间的函数调用关系,而且该方法同时可以生成相对应的函数调用关系列表,更加细致的描述函数调用关系.
文摘针对目前大多数的函数调用关系分析工具无法分析函数指针、系统启动过程以及可加载模块的函数调用关系的现象,在CG-RTL的基础上提出了基于内核跟踪的动态函数调用图生成方法,并开发了动态函数调用图生成工具DCG-RTL(dynamic call graph based on RTL)。DCG-RTL在S2E模拟器中运行待跟踪内核,通过指令捕获插件和函数解析插件记录运行时的函数调用和返回信息,分析跟踪信息得到动态和静态函数调用关系,利用CG-RTL工具在浏览器中展示。实验结果表明,DCG-RTL能全面和准确地跟踪包括函数指针引用和可加载内核模块在内的函数调用关系。