Generation and Visualization of Static Function Call Graph for Large C Codebases
Sourabh S Badhya1, Shobha G2
1Sourabh S Badhya*, Department of Computer Science, R.V. College of Engineering, Bengaluru (Karnataka), India.
2Shobha G, Professor, Department of Computer Science, R.V. College of Engineering, Bengaluru (Karnataka), India.
Manuscript received on June 05, 2021. | Revised Manuscript received on June 12, 2021. | Manuscript published on July 30, 2021. | PP: 1-6 | Volume-10 Issue-6, July 2021. | Retrieval Number: 100.1/ijsce.F35070510521 | DOI: 10.35940/ijsce.F3507.0710621
Open Access | Ethics and Policies | Cite | Mendeley
© The Authors. Published By: Blue Eyes Intelligence Engineering and Sciences Publication (BEIESP). This is an open access article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/)
Abstract: As software systems evolve, there is a growing concern on how to manage and maintain a large codebase and fully understand all the modules present in it. Developers spend a significant amount of time analyzing dependencies before making any changes into codebases. Therefore, there is a growing need for applications which can easily make developers comprehend dependencies in large codebases. These applications must be able to analyze large codebases and must have the ability to identify all the dependencies, so that new developers can easily analyze the codebase and start making changes in short periods of time. Static analysis provides a means of analyzing dependencies in large codebases and is an important part of software development lifecycle. Static analysis has been proven to be extremely useful over the years in their ability to comprehend large codebases. Out of the many static analysis methods, this paper focuses on static function call graph (SFCG) which represents dependencies between functions in the form of a graph. This paper illustrates the feasibility of many tools which generate SFCG and locks in on Doxygen which is extremely reliant for large codebases. The paper also discusses the optimizations, issues and its corresponding solutions for Doxygen. Finally, this paper presents a way of representing SFCG which is easier to comprehend for developers.
Keywords: Static function call graph, Static analysis, Duplicate functions, Doxygen, Cytoscape.js