A Static Call Graph Construction Method Based on Simulation Execution

被引:0
作者
Zhang, Fan [1 ]
Gu, Naijie [1 ]
Su, Junjie [1 ]
机构
[1] Univ Sci & Technol China, Dept Comp Sci, Hefei, Anhui, Peoples R China
来源
PROCEEDINGS OF 2019 IEEE 10TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND SERVICE SCIENCE (ICSESS 2019) | 2019年
关键词
call graphs; function call; static analysis; function pointer; virtual function; multithreading;
D O I
10.1109/icsess47205.2019.9040837
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Call graphs have many applications in the field of software engineering. For instance, they are at the foundation of many advanced analysis, such as inter-procedural data-flow analysis, and can help software developers to understand programs. Although many methods have been proposed to statically construct call graphs in C/C++ programs, the call graphs constructed by these methods are still not complete and accurate enough. Especially for the parent-child relationship between threads, there is currently no method that can extract it statically. In order to solve these problems, this paper proposes a static analysis method based on simulation execution to construct call graphs of C/C++ programs. The method analyzes the LLVM IR generated by the source program compilation, and it performs simulation execution on the LLVM IR to generate call graphs. The experimental results show that compared to existing static analysis methods, the proposed method has higher recall rate and higher precision rate, and can analyze the parent-child relationship between threads in a program that uses the pthread library.
引用
收藏
页码:72 / 76
页数:5
相关论文
共 7 条
[1]  
[Anonymous], 1992, Programming Language Design and Implementation (PLDI), DOI [10.1145/143103.143137, DOI 10.1145/143103.143137]
[2]  
Mo P., 2018, COMPUTER ENG DESIGN, V39, P118
[3]   Dynamic vs. Static Flow-Sensitive Security Analysis [J].
Russo, Alejandro ;
Sabelfeld, Andrei .
2010 23RD IEEE COMPUTER SECURITY FOUNDATIONS SYMPOSIUM (CSF), 2010, :186-199
[4]  
Sun Wei-Zhen, 2014, Journal of Chinese Computer Systems, V35, P555
[5]   Static call graph generator for C plus plus using debugging information [J].
Terashima, Yui ;
Gondow, Katsuhiko .
14TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2007, :127-+
[6]  
Zawawy E., 2012, J EGYPTIAN MATH SOC, V20.1, P28, DOI DOI 10.1016/J.JOEMS.2011.12.011
[7]  
Zheng YH, 2013, PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), P652, DOI 10.1109/ICSE.2013.6606611