Features/EclipseCallGraph

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
(Documentation)
m (Owner)
 
(34 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Launch local SystemTap scripts on Eclipse =
+
= Visualize C/C++ Projects With Eclipse =
  
 
== Summary ==
 
== Summary ==
  
GUI for launching custom/preset SystemTap scripts on Eclipse. Also provides a Zest-based graphing interface for graphical views of the user's program.
+
Graphically displays the call hierarchy from executing a C/C++ binary, along with various other runtime statistics.
  
 
== 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 ==
 
* Targeted release: [[Releases/12 | Fedora 12]]  
 
* Targeted release: [[Releases/12 | Fedora 12]]  
* Last updated: July 23, 2009
+
* Last updated: 2009-09-29
* Percentage of completion: 90%
+
* Percentage of completion: 100%
  
 
== Detailed Description ==
 
== Detailed Description ==
  
Allow developers to launch SystemTap scripts on their C/C++ projects directly from Eclipse. Provides a launch wizard for easy launches, as well as a few prebuilt scripts. The included graphical viewing program generates a program graph displaying time information for function calls. Also comes with the ability to annotate functions, allowing the user to mark graph nodes and displaying user-specified, function-specific information on the graph.
+
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 ==
 
== Benefit to Fedora ==
  
Makes it easier for developers to use SystemTap, and provides a neat way to graphically profile C/C++ projects developed through Eclipse.
+
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 ==
 
== Scope ==
Line 30: Line 44:
 
== Test Plan ==
 
== Test Plan ==
  
# Run upstream unit tests (mostly already written)
+
# Run upstream unit tests
  
 
== User Experience ==
 
== User Experience ==
  
# Users of Eclipse's CDT tools will be able to select Profile As and select one of several prebuilt SystemTap scripts, or launch a custom script through the script launch Wizard.
+
# Users of Eclipse's CDT tools will be able to select Profile As and select the script to run.
# Brief demo video : http://altrez.darktech.org/quickstapgraphdemo.ogg (~ 30 sec)
+
# 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 ==
 
== Dependencies ==
Line 47: Line 63:
  
 
== Documentation ==
 
== Documentation ==
* '''FIXME'''--FESCo requests documentation update 2009-07-29 (please do not remove this line until documentation or links to the documentation has been added)
+
* SystemTap documentation: The upstream website has [http://sourceware.org/systemtap/documentation.html documentation] and [http://sourceware.org/systemtap/examples/ examples] of SystemTap scripts.
 +
* SystemTap Eclipse Documentation : [[Eclipse/CallGraph]]
  
 
== Release Notes ==
 
== Release Notes ==
Line 54: Line 71:
 
----
 
----
  
[[Category:FeatureReadyForFesco]]
+
[[Category:FeatureAcceptedF12]]

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.