From Fedora Project Wiki
(init)
 
(init)
Line 1: Line 1:
<!-- All fields on this form are required to be accepted by FESCo.
We also request that you maintain the same order of sections so that all of the feature pages are uniform.  -->
<!-- The actual name of your feature page should look something like: Features/YourFeatureName.  This keeps all features in the same namespace -->
= GDB 7.3 =
= GDB 7.3 =


Line 11: Line 6:
== Owner ==
== Owner ==
* Name: [[User:jankratochvil| Jan Kratochvil]]
* Name: [[User:jankratochvil| Jan Kratochvil]]
* Email: jan.kratochvil@redhat.com
* Email: jan.kratochvil@redhat.com


Line 20: Line 14:


== Detailed Description ==
== Detailed Description ==
Rawhide already contains in progress updates from [http://www.gnu.org/software/gdb/current/ upstream CVS HEAD] such as [https://koji.fedoraproject.org/koji/packageinfo?packageID=295 gdb-7.2.50.20110117-12.fc15].
Rawhide already contains updates from [http://www.gnu.org/software/gdb/current/ upstream CVS HEAD] such as [https://koji.fedoraproject.org/koji/packageinfo?packageID=295 gdb-7.2.50.20110117-12.fc15].


== Benefit to Fedora ==
== Benefit to Fedora ==
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Fedora become a better distribution or project because of this feature?-->
Improved debugging experience on Fedora by making the debugger more powerful.


== Scope ==
== Scope ==
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
Systemtap markers support is a work in progress ([http://sourceware.org/gdb/wiki/ArcherBranchManagement#Existing_Branches archer-sergiodj-stap branch]).
 
Other Fedora packages bound to GDB are pretty-printers (<code>libstdc++</code> and <code>glib2-devel</code>) and a package based on the Python binding (<code>gdb-heap</code>).  ABRT uses basic commands from GDB for applications backtraces.


== How To Test ==
== How To Test ==
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this feature is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them. The more specific you can be, the better the community testing can be.  
GDB provides substantial GDB testsuite being regression tested with each new build.  <code>rpmbuild --with testsuite -bb gdb.spec 2>&1|tee log</code> produces output which can be processed by <code>uudecode</code> and <code>tar xjf</code>, resulting <code>*.sum</code> files should be compared against last stable release by <code>diff</code>. There should be no <code>PASS</code>-><code>FAIL</code> cases (regressions).


Remember that you are writing this how to for interested testers to use to check out your feature - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your feature.
<code>libstdc++</code> and <code>glib2-devel</code> pretty-printers and also <code>gdb-heap</code> should be tested by hand for compatibility. ABRT is dependent on GDB but incompatibilities are not expected there.
 
A good "how to test" should answer these four questions:
 
0. What special hardware / data / etc. is needed (if any)?
1. How do I prepare my system to test this feature? What packages
need to be installed, config files edited, etc.?
2. What specific actions do I perform to check that the feature is
working like it's supposed to?
3. What are the expected results of those actions?
-->


== User Experience ==
== User Experience ==
<!-- If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->
Improved debugging experience on Fedora by making the debugger more powerful.
* Support for breakpoints at [http://sourceware.org/systemtap/wiki/AddingUserSpaceProbingToAppsSystemtap SystemTap markers (probes)]
* Support for using labels in the program's source
* OpenCL language debugging support
* Thread debugging of core dumps - priting <code>pthread_t</code> of threads and their TLS variables
* Python scripting improvements not limited to:
** GDB values in Python are now callable if the value represents a function address.
** New module gdb.types for inferior types.
** New module gdb.printing for writing and registering pretty-printers.
More features are listed [http://sourceware.org/cgi-bin/cvsweb.cgi/~checkout~/src/gdb/NEWS?cvsroot=src upstream] above the line <code>*** Changes in GDB 7.2</code>.


== Dependencies ==
== Dependencies ==
Upstream may not release final 7.3 version in time for Fedora 15.  HEAD snapshot 7.2.50.x is perfectly fine to be release for Fedora, specific fixes are common practice for the GDB package.  Later final upstream release will be provided as Bodhi update.
Python is not expect to break its API.
 
Upstream may not release final 7.3 version in time for Fedora 15.


== Contingency Plan ==
== Contingency Plan ==
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour." Or it might not. If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. -->
HEAD snapshot 7.2.50.x is perfectly fine to be release for FedoraLater final upstream release will be provided as a Bodhi update.
 
If the breakpoints at [http://sourceware.org/systemtap/wiki/AddingUserSpaceProbingToAppsSystemtap SystemTap markers (probes)] support is not completed in time the feature can be dropped.


== Documentation ==
== Documentation ==
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
Documented [http://sourceware.org/cgi-bin/cvsweb.cgi/~checkout~/src/gdb/NEWS?cvsroot=src upstream] above the line <code>*** Changes in GDB 7.2</code>.
*
SystemTap markers (probes) are documented in he [http://sourceware.org/gdb/wiki/ArcherBranchManagement#Existing_Branches archer-sergiodj-stap branch] (before it gets merged).


== Release Notes ==
== Release Notes ==
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
*
 
This new GDB release 7.3 together with [http://sourceware.org/gdb/wiki/ArcherBranchManagement Archer] and Fedora extensions improves debugging experience on Fedora by making the debugger more powerful with new features for the Fedora 15 release:
* Support for breakpoints at [http://sourceware.org/systemtap/wiki/AddingUserSpaceProbingToAppsSystemtap SystemTap markers (probes)]
* Support for using labels in the program's source
* OpenCL language debugging support
* Thread debugging of core dumps - priting <code>pthread_t</code> of threads and their TLS variables
* Python scripting improvements not limited to:
** GDB values in Python are now callable if the value represents a function address.
** New module gdb.types for inferior types.
** New module gdb.printing for writing and registering pretty-printers.
More features are listed [http://sourceware.org/cgi-bin/cvsweb.cgi/~checkout~/src/gdb/NEWS?cvsroot=src upstream] above the line <code>*** Changes in GDB 7.2</code>.


== Comments and Discussion ==
== Comments and Discussion ==
Line 65: Line 74:




[[Category:FeaturePageIncomplete]]
[[Category:FeatureReadyForWrangler]]
<!-- When your feature page is completed and ready for review -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

Revision as of 12:23, 19 January 2011

GDB 7.3

Summary

Update the system GNU Debugger (GDB) in Fedora from 7.2 to 7.3. Existing and new Archer branches get ported along.

Owner

Current status

  • Targeted release: Fedora 15
  • Last updated: 2010-01-17
  • Percentage of completion: 50%

Detailed Description

Rawhide already contains updates from upstream CVS HEAD such as gdb-7.2.50.20110117-12.fc15.

Benefit to Fedora

Improved debugging experience on Fedora by making the debugger more powerful.

Scope

Systemtap markers support is a work in progress (archer-sergiodj-stap branch).

Other Fedora packages bound to GDB are pretty-printers (libstdc++ and glib2-devel) and a package based on the Python binding (gdb-heap). ABRT uses basic commands from GDB for applications backtraces.

How To Test

GDB provides substantial GDB testsuite being regression tested with each new build. rpmbuild --with testsuite -bb gdb.spec 2>&1|tee log produces output which can be processed by uudecode and tar xjf, resulting *.sum files should be compared against last stable release by diff. There should be no PASS->FAIL cases (regressions).

libstdc++ and glib2-devel pretty-printers and also gdb-heap should be tested by hand for compatibility. ABRT is dependent on GDB but incompatibilities are not expected there.

User Experience

Improved debugging experience on Fedora by making the debugger more powerful.

  • Support for breakpoints at SystemTap markers (probes)
  • Support for using labels in the program's source
  • OpenCL language debugging support
  • Thread debugging of core dumps - priting pthread_t of threads and their TLS variables
  • Python scripting improvements not limited to:
    • GDB values in Python are now callable if the value represents a function address.
    • New module gdb.types for inferior types.
    • New module gdb.printing for writing and registering pretty-printers.

More features are listed upstream above the line *** Changes in GDB 7.2.

Dependencies

Python is not expect to break its API.

Upstream may not release final 7.3 version in time for Fedora 15.

Contingency Plan

HEAD snapshot 7.2.50.x is perfectly fine to be release for Fedora. Later final upstream release will be provided as a Bodhi update.

If the breakpoints at SystemTap markers (probes) support is not completed in time the feature can be dropped.

Documentation

Documented upstream above the line *** Changes in GDB 7.2. SystemTap markers (probes) are documented in he archer-sergiodj-stap branch (before it gets merged).

Release Notes

This new GDB release 7.3 together with Archer and Fedora extensions improves debugging experience on Fedora by making the debugger more powerful with new features for the Fedora 15 release:

  • Support for breakpoints at SystemTap markers (probes)
  • Support for using labels in the program's source
  • OpenCL language debugging support
  • Thread debugging of core dumps - priting pthread_t of threads and their TLS variables
  • Python scripting improvements not limited to:
    • GDB values in Python are now callable if the value represents a function address.
    • New module gdb.types for inferior types.
    • New module gdb.printing for writing and registering pretty-printers.

More features are listed upstream above the line *** Changes in GDB 7.2.

Comments and Discussion