Visualize C/C++ Projects With Eclipse
Summary
Graphically displays the call hierarchy from executing a C/C++ binary, along with various other runtime statistics.
Owner
- Name: Charley Wang
- E-mail: chwang@redhat.com
- Name: Roland Grunberg
- E-mail: rgrunber@redhat.com
Current status
- Targeted release: Fedora 12
- Last updated: 2009-09-29
- Percentage of completion: 100%
Detailed Description
Allow developers to profile their C/C++ projects directly from Eclipse, and view various runtime information about their program such as:
- Relationship between function calls
- Number of times each function was called
- Time taken by each function instance relative to the program's execution time
- Time taken by all instances of a function relative to program's execution time
- Ability to jump to the point in the source where a function was defined, or to the approximate location where a function was called
- Ability to 'step' through function calls within the graph in chronological order
In addition, this feature allows the viewing of the entire call hierarchy in various ways:
- Radial view: One central node, its most time-consuming children and its parent. Some nodes are highlighted to indicate presence of grandchildren.
- Tree view: Condensed tree structure displaying all descendants of a given node.
- Box view: All descendants of a certain function call-depth (i.e. display all descendants of all great-grandchildren of main).
- Aggregate view: All unique functions as boxes with colour and size relative to the number of calls and time taken, respectively
- Collapse/Uncollapse: In collapse mode, all instances of B where A --> B will be grouped into a single node. In uncollapsed mode, each instance of B where A --> B will have its own separate node in the graph.
Benefit to Fedora
Makes it easier for C/C++ developers to use SystemTap. Offers developers new ways to trace function calls, system calls, with a tidy frontend for user-friendly data.
Scope
Adds a small plugin family to Eclipse, which will provide the above functionality.
Test Plan
- Run upstream unit tests
User Experience
- Users of Eclipse's CDT tools will be able to select Profile As and select the script to run.
- The present release will only contain a preconstructed function call graph script, other preconstructed scripts and a launch wizard will be in future versions.
- For screenshots and more details, see: Eclipse/CallGraph
- Brief demo video : http://rgrunber.fedorapeople.org/eclipse-callgraph.ogg (~ 3 min)
Dependencies
- SystemTap translator/driver (version 0.9.8/0.141+) <rpm: systemtap>
- Eclipse 3.4.1 or greater, with CDT <rpm: eclipse-cdt, eclipse-platform>
- Eclipse GEF (specifically Zest) <rpm: eclipse-gef>
Contingency Plan
- Continue without such capability.
Documentation
- SystemTap documentation: The upstream website has documentation and examples of SystemTap scripts.
- SystemTap Eclipse Documentation : Eclipse/CallGraph
Release Notes
Users will need to be part of the stapdev group on their machine in order to fully take advantage of SystemTap's offerings.