Features/EclipseCallGraph

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
m (Detailed Description)
m (Owner)
 
(3 intermediate revisions by one user not shown)
Line 1: Line 1:
= Launch local SystemTap scripts on Eclipse =
+
= Visualize C/C++ Projects With Eclipse =
  
 
== Summary ==
 
== Summary ==
Line 7: Line 7:
 
== Owner ==
 
== Owner ==
 
* Name: Charley Wang
 
* Name: Charley Wang
* E-mail: chwang@redhat.com
+
* E-mail: chwang at redhat.com
 
* Name: Roland Grunberg
 
* Name: Roland Grunberg
* E-mail: rgrunber@redhat.com
+
* E-mail: rgrunber at redhat.com
  
 
== Current status ==
 
== Current status ==
Line 51: Line 51:
 
# The present release will only contain a preconstructed function call graph script, other preconstructed scripts and a launch wizard will be in future versions.
 
# 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]]
 
# For screenshots and more details, see: [[Eclipse/CallGraph]]
# Brief demo video : http://altrez.darktech.org/basicFunctions.ogg (~ 1 min)
+
# Brief demo video : http://rgrunber.fedorapeople.org/eclipse-callgraph.ogg (~ 3 min)
  
 
== Dependencies ==
 
== Dependencies ==

Latest revision as of 17:58, 9 August 2010

Contents

[edit] Visualize C/C++ Projects With Eclipse

[edit] Summary

Graphically displays the call hierarchy from executing a C/C++ binary, along with various other runtime statistics.

[edit] Owner

  • Name: Charley Wang
  • E-mail: chwang at redhat.com
  • Name: Roland Grunberg
  • E-mail: rgrunber at redhat.com

[edit] Current status

  • Targeted release: Fedora 12
  • Last updated: 2009-09-29
  • Percentage of completion: 100%

[edit] 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.

[edit] 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.

[edit] Scope

Adds a small plugin family to Eclipse, which will provide the above functionality.

[edit] Test Plan

  1. Run upstream unit tests

[edit] 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://rgrunber.fedorapeople.org/eclipse-callgraph.ogg (~ 3 min)

[edit] 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>

[edit] Contingency Plan

  • Continue without such capability.

[edit] Documentation

[edit] 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.