Features/EclipseCallGraph
From FedoraProject
(→Launch local SystemTap scripts on Eclipse) |
m (→Owner) |
||
| (18 intermediate revisions by 2 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 | + | * E-mail: chwang at redhat.com |
* Name: Roland Grunberg | * Name: Roland Grunberg | ||
| − | * E-mail: rgrunber | + | * E-mail: rgrunber at redhat.com |
== Current status == | == Current status == | ||
* Targeted release: [[Releases/12 | Fedora 12]] | * Targeted release: [[Releases/12 | Fedora 12]] | ||
| − | * Last updated: 2009- | + | * 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 C/C++ developers to use SystemTap. Offers developers new ways to trace function calls, system calls | + | 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 31: | Line 44: | ||
== Test Plan == | == Test Plan == | ||
| − | # Run upstream unit tests | + | # Run upstream unit tests |
== User Experience == | == User Experience == | ||
| Line 37: | Line 50: | ||
# Users of Eclipse's CDT tools will be able to select Profile As and select the script to run. | # 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. | # 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/ | + | # For screenshots and more details, see: [[Eclipse/CallGraph]] |
| − | # Brief demo video : http:// | + | # Brief demo video : http://rgrunber.fedorapeople.org/eclipse-callgraph.ogg (~ 3 min) |
== Dependencies == | == Dependencies == | ||
| Line 51: | Line 64: | ||
== 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 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/ | + | * SystemTap Eclipse Documentation : [[Eclipse/CallGraph]] |
== Release Notes == | == Release Notes == | ||
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
- Run upstream unit tests
[edit] 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)
[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
- SystemTap documentation: The upstream website has documentation and examples of SystemTap scripts.
- SystemTap Eclipse Documentation : Eclipse/CallGraph
[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.