期刊文献+

基于RTL的函数调用图生成工具CG-RTL 被引量:7

CG-RTL: a RTL-based Function Call Graph Generator
在线阅读 下载PDF
导出
摘要 为了分析操作系统内核等大型软件的模块间函数调用关系,针对传统的函数调用关系生成工具不适用于模块间调用关系分析以及其依赖编译器具体特定版本等不足,提出一种基于寄存器传送语言(Register Transfer Language,RTL)的函数调用图生成方法,并根据该方法实现了一个生成模块间函数调用图的工具CG-RTL(call graph based on RTL,简称为CG-RTL).CGRTL首先从编译过程所生成的中间结果中提取出函数定义和调用关系信息,然后利用开源图形可视化工具Graphviz将其绘制出来,并最终将该功能集成到在线源代码浏览工具LXR中去.实验结果表明:通过该方法获得的函数调用关系与目标代码较为一致,而且可以分析用户指定模块间的函数调用关系,而且该方法同时可以生成相对应的函数调用关系列表,更加细致的描述函数调用关系. In order to analyze the function call between the modules in the operating system kernel and other large software, and con- sidering the existed tools are unsuitable for analyzing the relationship between modules and its depending on the specific version of the complier, it presents a register transfer language( RTL ) call graph generator: CG-RTL ( Call graph based on RTL, referred as CG- RTL ). Firstly, it extracts the information of function definitions and calls from the intermediate results generated by the compilation process. Secondly, it uses the Graphviz ( a open source visualization tool ) to draw the function call out. Finally, it integrates the functionality with the LXR (online source code browser tool ). CG-RTL can generate not only function call graph between modules and files but also the corresponding function call list, which can give more detailed description of the function call relationships. The experimental results show that the function call relationships obtained by CG-RTL are more consistent with the object code. Moreo- ver, it can analyze the relationship between specified modules, to know about the structure of operation system and other large soft- ware.
出处 《小型微型计算机系统》 CSCD 北大核心 2014年第3期555-559,共5页 Journal of Chinese Computer Systems
基金 核高基国家科技重大专项项目(2012ZX01039-003 2012ZX01039-004-01-3)资助
关键词 操作系统内核 函数调用图 寄存器传送语言 模块间函数调用关系 源代码分析 operating system kernel function call graph register transfer language function call between modules source code analysis
  • 相关文献

参考文献1

二级参考文献3

  • 1Ryder BG. Constructing the call graph of a program. IEEE Trans. on Software Engineering, 1979,5(3):216- 226.
  • 2Gagnon EM, Hendren L J, Marceau G Efficient inference of static types for Java bytecode. Static Analysis Symposium 2000. Santa Barbara, 2000: 199-219.
  • 3Diwan A, Eliot J, Moss B. Simple and effective analysis of statically-typed object-oriented programs. Proc. of the Conference on Object-Oriented Programming Systems, Languages, and Applications. New York, 1 996: 292-305.

共引文献4

同被引文献54

  • 1蒋湘涛,胡志刚,贺建飚.基于调用链分析的低功耗编译优化[J].吉林大学学报(工学版),2009,39(1):143-147. 被引量:6
  • 2GORMAN M. CodeViz:a call graph generation utility for C/C + + [ EB/OL]. http://www, skynet, ie/- mel/projects/codeviz/.
  • 3GUSTAFSSON A. Egypt-create call graph from GCC RTL dump[ EB/ OL]. (2013). http ://www. gson. org/egypt/egypt, html.
  • 4LATTNER C. Introduction to the LLVM compiler infrastructure [ C]//Proc of Itanium Conference and Expo. 2006.
  • 5CHAN S C , GAO G R, CHAPMAN B. Open64 compiler infrastruc- ture for emerging mulficore/manycore architecture[ C ]//Proe of IEEE International Symposium on Parallel and Distributed Processing. [ S. 1. ] : IEEE Press, 2008 : 1.
  • 6JACOB B, LARSON P, LEITAO B, et al. SystemTap: instrumenting the Linux kernel for analyzing performance and functional problems [K]. [S. 1. ]:IBM Redbook, 2008.
  • 7GRAHAM S L, KESSLER P B, MCHUSICK M K. Gprof: a call graph execution profiler [ J]. ACM SIGPLAN Notices, 1982, 17 (6) :120-126.
  • 8WEIDENDORFER J. Sequential performance analysis with callgrind and Kcachegrind [ M ]//Tools for High Performance Computing. Ber- lin: Springer, 2008 : 93-113,.
  • 9ROSTEDT S. Finding origins of latencies using Ftraee [ EB/OL ]. ( 2009 ). http ://lwn. net/images/conf/rtlwsl 1/papers/proe/p02. pdf.
  • 10KORANNE S. Handbook of open source tools[ M]. [ S. 1. ] :Spring- er, 2010.

引证文献7

二级引证文献10

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部