为了分析操作系统内核等大型软件的模块间函数调用关系,针对传统的函数调用关系生成工具不适用于模块间调用关系分析以及其依赖编译器具体特定版本等不足,提出一种基于寄存器传送语言(Register Transfer Language,RTL)的函数调用图生成...为了分析操作系统内核等大型软件的模块间函数调用关系,针对传统的函数调用关系生成工具不适用于模块间调用关系分析以及其依赖编译器具体特定版本等不足,提出一种基于寄存器传送语言(Register Transfer Language,RTL)的函数调用图生成方法,并根据该方法实现了一个生成模块间函数调用图的工具CG-RTL(call graph based on RTL,简称为CG-RTL).CGRTL首先从编译过程所生成的中间结果中提取出函数定义和调用关系信息,然后利用开源图形可视化工具Graphviz将其绘制出来,并最终将该功能集成到在线源代码浏览工具LXR中去.实验结果表明:通过该方法获得的函数调用关系与目标代码较为一致,而且可以分析用户指定模块间的函数调用关系,而且该方法同时可以生成相对应的函数调用关系列表,更加细致的描述函数调用关系.展开更多
针对基于文件的内核函数调用图工具存在的文件系统可扩展性和适用性等方面的不足,设计并实现了基于数据库的DBCG-RTL工具(Data Based Call Graph Tool Based on RTL,DBCG-RTL),该工具可用于分析大型软件模块间的函数调用关系.DBCG-RTL...针对基于文件的内核函数调用图工具存在的文件系统可扩展性和适用性等方面的不足,设计并实现了基于数据库的DBCG-RTL工具(Data Based Call Graph Tool Based on RTL,DBCG-RTL),该工具可用于分析大型软件模块间的函数调用关系.DBCG-RTL通过查找编译过程中生成的符号表而获得函数入口地址、返回行号等相关函数信息,绘制相应的关系图并标识出调用次数等信息,建立了相关的虚目录;将需要分析的对象通过分析工具跟踪到的数据转换成标准化格式并存入数据库.论文结果表明,该方法扩展了动态函数调用关系分析的功能,增加了虚目录函数调用关系分析等新方法;改善了工具执行效率,提高了工具的分析精度.展开更多
文摘为了分析操作系统内核等大型软件的模块间函数调用关系,针对传统的函数调用关系生成工具不适用于模块间调用关系分析以及其依赖编译器具体特定版本等不足,提出一种基于寄存器传送语言(Register Transfer Language,RTL)的函数调用图生成方法,并根据该方法实现了一个生成模块间函数调用图的工具CG-RTL(call graph based on RTL,简称为CG-RTL).CGRTL首先从编译过程所生成的中间结果中提取出函数定义和调用关系信息,然后利用开源图形可视化工具Graphviz将其绘制出来,并最终将该功能集成到在线源代码浏览工具LXR中去.实验结果表明:通过该方法获得的函数调用关系与目标代码较为一致,而且可以分析用户指定模块间的函数调用关系,而且该方法同时可以生成相对应的函数调用关系列表,更加细致的描述函数调用关系.
文摘针对基于文件的内核函数调用图工具存在的文件系统可扩展性和适用性等方面的不足,设计并实现了基于数据库的DBCG-RTL工具(Data Based Call Graph Tool Based on RTL,DBCG-RTL),该工具可用于分析大型软件模块间的函数调用关系.DBCG-RTL通过查找编译过程中生成的符号表而获得函数入口地址、返回行号等相关函数信息,绘制相应的关系图并标识出调用次数等信息,建立了相关的虚目录;将需要分析的对象通过分析工具跟踪到的数据转换成标准化格式并存入数据库.论文结果表明,该方法扩展了动态函数调用关系分析的功能,增加了虚目录函数调用关系分析等新方法;改善了工具执行效率,提高了工具的分析精度.