Product SiteDocumentation Site

6. Tools

6.1. GNU Project debugger (GDB)

The GNU Project debugger (normally referred to as GDB) debugs programs written in C, C++, and other languages by executing them in a controlled fashion, and then printing out their data.
In Red Hat Enterprise Linux 5.5, GDB has been updated to version 7.0.1. For a detailed listing of changes refer to the GDB section of the Technical Notes.
Enhanced C++ support
Support for the C++ programming language in GDB has been improved. Notable improvements include:
  • Many improvements to expression parsing.
  • Better handling of type names.
  • The need for extraneous quoting has nearly been eliminated
  • "next" and other stepping commands work properly even when the inferior throws an exception.
  • GDB has a new "catch syscall" command. This can be used to stop the inferior whenever it makes a system call.
Wide and multi-byte character support
GDB now has support for wide and multi-byte characters on the target.
Independent thread debugging
Thread execution now permits debugging threads individually and independently of each other; enabled by new settings "set target-async" and "set non-stop".

6.2. SystemTap

SystemTap is a tracing and probing tool that allows users to study and monitor the activities of the operating system (particularly, the kernel) in fine detail. It provides information similar to the output of tools like netstat, ps, top, and iostat; however, SystemTap is designed to provide more filtering and analysis options for collected information.
New Kernel Tracepoints
Tracepoints are placed in important sections of the kernel, allowing system administrators to analyze the performance of, and debug portions of code. In Red Hat Enterprise Linux 5.5, a wide range of tracepoints have been added to the kernel (BZ#475710), including tracepoints for networking (BZ#475457), coredump (BZ#517115) and signal (BZ#517121).

Note

A list of tracepoints available in the kernel can be obtained with:
stap -L 'kernel.trace("*")'|sort
Unprivileged mode
Previously, only users with root privileges were able to use SystemTap. This update introduces SystemTap's unprivileged mode, allowing non-root users to still use SystemTap. Detailed information on unprivileged man stap-client manpage.

Important

Unprivileged mode is considered a Technology Preview in the Red Hat Enterprise Linux 5.5. The stap-server facility on which it relies is undergoing work for security improvements and should be deployed with care on a trustworthy network.
C++ Probing
The C++ program probing improvements also allows better probing of user-space programs.

6.3. Valgrind

Valgrind is used to monitor memory read, write, and allocation operations. The valgrind tool is frequently used by developers to diagnose and debug memory management problems.
Valgrind has been updated to version 3.5.0, providing enhanced support for a wide range of system architectures. This update introduces many improvements to performance, scalability and usability of the Valgrind. Notably, the usability and scalability of the Helgrind tool — which is used to detect race contiditions — has been improved. The leak checking capabilities of the Memcheck tool are also improved. Additionally, support for DWARF debugging information has been enhanced.

Note: This documentation is provided {and copyrighted} by Red Hat®, Inc. and is released via the Open Publication License. The copyright holder has added the further requirement that Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder. The CentOS project redistributes these original works (in their unmodified form) as a reference for CentOS-5 because CentOS-5 is built from publicly available, open source SRPMS. The documentation is unmodified to be compliant with upstream distribution policy. Neither CentOS-5 nor the CentOS Project are in any way affiliated with or sponsored by Red Hat®, Inc.