m (→Owner) |
|||
(55 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
= | = Visualize C/C++ Projects With Eclipse = | ||
== Summary == | == Summary == | ||
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 at redhat.com | |||
* Name: Roland Grunberg | * Name: Roland Grunberg | ||
* E-mail: rgrunber at redhat.com | |||
== Current status == | == Current status == | ||
* Targeted release: [[Releases/12 | Fedora 12]] | * Targeted release: [[Releases/12 | Fedora 12]] | ||
* Last updated: | * Last updated: 2009-09-29 | ||
* Percentage of completion: | * Percentage of completion: 100% | ||
== Detailed Description == | == Detailed Description == | ||
Allow developers to | 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, | 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 == | ||
Adds a small plugin family to | Adds a small plugin family to Eclipse, which will provide the above functionality. | ||
== Test Plan == | == Test Plan == | ||
# | # Run upstream unit tests | ||
== User Experience == | == User Experience == | ||
# Users of | # 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 == | == Dependencies == | ||
* SystemTap translator/driver (version 0.9.8/0.141+) | * 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 == | == Contingency Plan == | ||
Line 50: | Line 63: | ||
== Documentation == | == Documentation == | ||
* 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 57: | Line 71: | ||
---- | ---- | ||
[[Category: | [[Category:FeatureAcceptedF12]] |
Latest revision as of 17:58, 9 August 2010
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 at redhat.com
- Name: Roland Grunberg
- E-mail: rgrunber at 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.