Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

1.60. gdb

1.60.1. RHBA-2010:0285: bug fix update

An updated gdb package that fixes various bugs is now available.
The GNU Project debugger, GDB, debugs programs written in C, C++, and other languages by executing them in a controlled fashion, and then printing out their data.
With this update, GDB is now re-based to upstream version 7.0.1 (BZ#526533). This applies several bug fixes and enhancements not listed here. For a full description of this version, refer to the following link: http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/NEWS.diff?cvsroot=src&r1=t ext&tr1=1.259.2.1&r2=text&tr2=1.331.2.2&f=u
This update applies the following bug fixes:
* Printing values from a debugged program by dereferencing a pointer to an object of dynamic type printed out an error stating "Cannot resolve DW_OP_push_object_address for a missing object". Such pointers are produced by an unsupported iFort compiler, not by gfortran. With this update, GDB can now dereference pointers to objects of dynamic type, thereby correctly printing the dynamic Fortran arrays dereferenced from such pointers (as produced by the iFort compiler). (BZ#514287)
* Debugging a program with thousands of set breakpoints was unacceptably slow. This was because a previous patch introduced a mechanism that hid breakpoint instructions and returned "shadow" content whenever target_read_memory() accessed memory. The aforementioned patch was implemented upstream to be used with a "breakpoint always-inserted" option, which was not implemented in Red Hat Enterprise Linux version of GDB. But Red Hat Enterprise Linux version backported it to solve a problem on Itanium where instruction (and thus even breakpoint instruction) boundaries are not byte-aligned. This update reimplements the shadowing functionality using more optimal log(n) algorithm instead, which consequently prevents any unnecessary slowdown when processing programs with numerous set breakpoints. (BZ#520618)
* GDB incorrectly skipped OpenMP parallel sections (instead of entering them as expected) when using the "next" command. This was caused by missing DWARF annotations from GCC that made it possible for OpenMP parallel sections to be incorrectly classified as function calls. To address this, GDB contains special instructions to make OpenMP parallel sections indifferent to normal code, allowing GDB to step into parallel sections with "next" correctly. (BZ#533176)
* The GDB version banner now correctly displays "Red Hat Enterprise Linux" instead of "Fedora". (BZ#537788)
* GDB no longer obsoletes the pstack package. (BZ#550786)
* Loading symbols in STABS debug format could crash GDB. The STABS format is no longer supported, as Red Hat Enterprise Linux uses the debug format DWARF. With this update, loading symbols in STABS format no longer crashes GDB; instead, such symbols are simply loaded incorrectly. (BZ#553672)
* Adding GDB support for Fortran modules in previous releases introduced a regression which prevented GDB from setting breakpoints on a Fortran program's name. This was caused by a bug in the search routines used when "set language fortran" is enabled. This update fixes the regression. (BZ#559291)
* The Red Hat Enterprise Linux 5.5 version of GDB also contains a fix for an upstream GDB regression that prevented users from setting rwatch and awatch breakpoints before a program starts. This version of GDB implements a compatibility fix from GDB 6.8 to address the regression. (BZ#562770)
* A "break-by-name on inlined functions" feature introduced in Fedora GDB made it possible for parameters of inlined functions to be incorrectly hidden. Whenever this occurred during debugging, GDB printed "<optimized out>" in backtraces or upon entering such functions. In some cases, stepping through inlined functions could also abort GDB with an internal error. This release resolves the issue by removing the "break-by-name on inlined functions" feature altogether. (BZ#565601)
All GDB users should apply this update.