6. Tools
6.1. GNU Project debugger (GDB)
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.
GDB now has support for wide and multi-byte characters on the target.
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
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
stap -L 'kernel.trace("*")'|sort
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
The C++ program probing improvements also allows better probing of user-space programs.
6.3. Valgrind
Memcheck
tool are also improved. Additionally, support for DWARF debugging information has been enhanced.