From Fedora Project Wiki
(Created page with '= Rebase Frozboz to latest upstream (Example) = {{Admon/note | This is an example page for features proposed for new releases of Fedora. It may also be used as a template}} ''...')
 
 
(67 intermediate revisions by 4 users not shown)
Line 1: Line 1:
= Rebase Frozboz to latest upstream (Example) =
= Visualize C/C++ Projects With Eclipse =
 
{{Admon/note | This is an example page for features proposed for new releases of Fedora.  It may also be used as a template}}
 
'''A blank version of this template is at [[Features/EmptyTemplate]]'''


== Summary ==
== Summary ==


Improve the frozboz stack so it works with standard frozboz devices
Graphically displays the call hierarchy from executing a C/C++ binary, along with various other runtime statistics.


== Owner ==
== Owner ==
* Name: WikiName
* Name: Charley Wang
* E-mail: chwang at redhat.com
* Name: Roland Grunberg
* E-mail: rgrunber at redhat.com


== Current status ==
== Current status ==
* Targeted release: [[Releases/X| Fedora X]]  
* Targeted release: [[Releases/12 | Fedora 12]]  
* Last updated: (DATE)
* Last updated: 2009-09-29
* Percentage of completion: XX%
* Percentage of completion: 100%


== Detailed Description ==
== Detailed Description ==


Improve the frozboz stack so it works with standard frozboz devices by rebasing to the latest upstream version and merging in patches provided by the snozboz project which will double the speed of all frozboz devices when four or more are connected at the same time.
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 ==


The current release of Fedora 7 contains frozboz 1.07.  The current upstream version is 5.03. Rebasing to the latest version will bring Fedora into parity with all of the other leading distributions.  In addition, adding the snozboz patches will make Fedora twice as fast as the other leading distributions that do not contain these patches.
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 ==


Requires rebasing to the latest upstream version and updating the spec file to pull in the snozboz patches.
Adds a small plugin family to Eclipse, which will provide the above functionality.


== Test Plan ==
== Test Plan ==


# Get a pile of frozboz devices.
# Run upstream unit tests
# Run the latest frozboz testsuite on i386 and x86_64 platforms
# Work with Fedora QA to ensure that we have sufficient coverage


== User Experience ==
== User Experience ==


# Users of the updated version of frozboz should notice an increase in the speed of their devices over older versions.
# Users of Eclipse's CDT tools will be able to select Profile As and select the script to run.
# Users should notice that frozboz devices are automatically mounted and that the icon appears on the desktop
# 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 ==


* snozzle-4.5.1 or greater (already in rawhide)
* SystemTap translator/driver (version 0.9.8/0.141+) <rpm: systemtap>
* [Features/FirewireUpdate]
* Eclipse 3.4.1 or greater, with CDT <rpm: eclipse-cdt, eclipse-platform>
* Eclipse GEF (specifically Zest) <rpm: eclipse-gef>


== Contingency Plan ==
== Contingency Plan ==
* revert to the current version of fozboz in Fedora and re-attempt for the next release of Fedora.
* Continue without such capability.


== Documentation ==
== Documentation ==
* http://frozboz.example.com/docs
* 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 ==
Users upgrading to the latest version of frozboz from a previous version will need to run frozbozilator-update in order for previously mapped devices to be recognized under the new version.
Users will need to be part of the stapdev group on their machine in order to fully take advantage of SystemTap's offerings.


----
----


[[Category:FeaturePageIncomplete]]
[[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

  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://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

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.