13. Compiler and Tools
- Improved support for user-space probing.
- Support for probing C++ programs with native C++ syntax.
- A more secure script-compile server.
- The new unprivileged mode, allowing non-root users to use SystemTap.
13.3. GNU Compiler Collection (GCC)
- Conformance to version 3.0 of the Open Multi-Processing (OpenMP) application programming interface (API).
- Additional C++ libraries to utilize OpenMP threads
- Futher implementations of the next ISO C++ standard draft (C++0x)
- Introduction of variable tracking assignments to improve debugging using the GNU Project Debugger (GDB) and SystemTap.
13.4. GNU C Library (glibc)
- An enhanced dynamic memory allocation (malloc) behaviour enabling higher scalability across many sockets and cores. This is achieved by assigning threads their own memory pools and by avoiding locking in some situations. The amount of additional memory used for the memory pools (if any) can be controlled using the environment variables MALLOC_ARENA_TEST and MALLOC_ARENA_MAX. MALLOC_ARENA_TEST specifies that a test for the number of cores is performed once the number of memory pools reaches this value. MALLOC_ARENA_MAX sets the maximum number of memory pools used, regardless of the number of cores.
- Improved efficiency when using condition variables (condvars) with priority inheritance (PI) mutual exclusion (mutex) operations by utilizing support in the kernel for PI fast userspace mutexes.
- Optimized string operations on the x86_64 architecture.
getaddrinfo()function now has support for the Datagram Congestion Control Protocol (DCCP) and the UDP-Lite protocol. Additionally,
getaddrinfo()now has the ability to look up IPv4 and IPv6 addresses simultaneously.
13.5. GNU Project debugger (GDB)
This updated version of GDB introduces the new Python API, allowing GDB to be automated using scripts written in the Python Programming Language.
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.
Thread execution now permits debugging threads individually and independently of each other; enabled by new settings "set target-async" and "set non-stop".