Java Call Stack Graph Tool
Syed Omer Salar KhureshiOral Defence Date:
Friday, August 3, 2018 - 13:00Location:
Profs. Arno Puder and Bill Hsu
The problem of understanding the execution paths of an application and thereby its flow, especially for complex programs employing multithreading and synchronization, is well appreciated and commonly encountered. The aid of logging statements is often used to understand better the execution and flow of the code, but this approach has a varying degree of effectiveness limited due to the following: 1. Manual logging covers only part of the code and does not provide a holistic view. 2. The result is a textual file; large files tend to be cumbersome to understand. 3. Extremely difficult to understand when dealing with multithreading and synchronization. The objective of this project is to develop a tool that enables the developers to understand and investigate different execution paths in a target application by visual means. To achieve this, the tool renders a graphical representation of the call stack hierarchy by using the information present in a log file. Additionally, the tool enables easy inspection of method details and provides a way to jump between different threads at their synchronization points.