Features/EclipseCallGraph

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
m (Detailed Description)
Line 18: Line 18:
 
== Detailed Description ==
 
== Detailed Description ==
  
Allow developers to profile their C/C++ projects directly from Eclipse, and view various runtime information about their program such as :
+
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
 
* Relationship between function calls
 
* Number of times each function was called
 
* Number of times each function was called
* Time an instance of a function took relative to whole program
+
* Time taken by each function instance relative to the program's execution time
* Cumulative time of a function relative to whole program
+
* Time taken by all instances of a function relative to program's execution time
* Ability to click on a function in the visual graph, and jump to its source code
+
* 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
 
* 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 :
+
In addition, this feature allows the viewing of the entire call hierarchy in various ways:
* One function at a time, and only its children, along with nodes coloured to represent whether that function has additional children
+
* Radial view: One central node, its most time-consuming children and its parent. Some nodes are highlighted to indicate presence of grandchildren.
* All function in a condensed tree-like structure to show as much of the call hierarchy as is possible
+
* Tree view: Condensed tree structure displaying all descendants of a given node.
* All functions in a larger tree structure so as to give the user the ability to pan around the hierarchy
+
* Box view: All descendants of a certain function call-depth (i.e. display all descendants of all great-grandchildren of main).
* All unique functions as boxes with colour and size relative to the number of calls, and time taken respectively
+
* Aggregate view: All unique functions as boxes with colour and size relative to the number of calls and time taken, respectively
* Ability to switch between viewing all instances of functions called, and all identical functions grouped together
+
* Collapse/Uncollapse: In collapse mode, all instances of C where A --> B --> C will be grouped into a single node. In uncollapsed mode, each instance of C where A --> B --> C will have its own separate node in the graph.
 +
 
  
 
== Benefit to Fedora ==
 
== Benefit to Fedora ==

Revision as of 14:26, 29 September 2009

Contents

Launch local SystemTap scripts on 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 C where A --> B --> C will be grouped into a single node. In uncollapsed mode, each instance of C where A --> B --> C 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

  1. Run upstream unit tests

User Experience

  1. Users of Eclipse's CDT tools will be able to select Profile As and select the script to run.
  2. The present release will only contain a preconstructed function call graph script, other preconstructed scripts and a launch wizard will be in future versions.
  3. For screenshots and more details, see: Eclipse/CallGraph
  4. Brief demo video : http://altrez.darktech.org/basicFunctions.ogg (~ 1 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

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.