B.4. Changes in elfutils

Red Hat Developer Toolset 3.0 is distributed with elfutils 0.159, which provides a number of bug fixes and feature enhancements over the Red Hat Enterprise Linux system version and the version included in the previous release of Red Hat Developer Toolset. Below is a comprehensive list of new features in this release.

B.4.1. Changes Since Red Hat Developer Toolset 2.1

The following features have been added since the release of elfutils 0.157 in Red Hat Developer Toolset 2.1:
  • The libdwfl library has been improved in a number of ways:
    • The dwfl_core_file_report has a new parameter, executable.
    • The following new functions have been added: dwfl_module_getsymtab_first_global, dwfl_module_getsym_info, and dwfl_module_addrinfo.
    • An unwinder has been added with a Dwfl_Thread_Callbacks type, two opaque types (Dwfl_Thread and Dwfl_Frame), and the following functions: dwfl_attach_state, dwfl_pid, dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread, dwfl_thread_state_registers, dwfl_thread_state_register_pc, dwfl_getthread_frames, dwfl_getthreads, dwfl_thread_getframes, and dwfl_frame_pc.
  • The eu-addr2line utility has a new option, -x or --symbol-sections, to show the section in which an address was found.
  • A new utility, eu-stack, has been added that uses the new unwinder for processes and cores.
  • A new backend has been added. The unwinder now supports the ARM 64-bit architecture, which allows for manipulation of ELF and DWARF files specific for ARM 64-bit.
  • The CVE-2014-0172 has been fixed. The bug was caused by an integer overflow that led to a heap-based buffer overflow in the libdw library. To fix the problem, an overflow check has been added before calling malloc to uncompress data.

B.4.2. Changes Since Red Hat Enterprise Linux 7.0

The following features have been added since the release of elfutils 0.158 in Red Hat Enterprise Linux 7.0:
  • The eu-stack utility has two new options:
    • A new option, -d or --debugname, has been added for looking up DWARF debugging information names for frame addresses.
    • A new option, -i or --inlines, has been added for showing inlined frames using DWARF debugging information.
  • The libdwelf library has been improved in a number of ways:
    • A new header file, libdwelf.h, has been added for libdw.so low-level DWARF or ELF helper functions.
    • New functions have been added: dwelf_elf_gnu_debuglink, dwelf_dwarf_gnu_debugaltlink, and dwelf_elf_gnu_build_id.
  • The libdw library has been improved in a number of ways:
    • Support for DWZ multifile forms, DW_FORM_GNU_ref_alt and DW_FORM_GNU_strp_alt, is now enabled by default and is no longer experimental.
    • New functions, dwarf_getalt and dwarf_setalt, have been added for getting or setting the alternative debugging file used for the alt FORMs.
    • The dwfl_linux_proc_find_elf callback now finds ELF from process memory for (deleted) files if the Dwfl has a process state attached.
  • In the libdwfl library, the dwfl_build_id_find_debuginfo and dwfl_standard_find_debuginfo functions now try to resolve and set an alternative debugging file.
  • The elfutils backends have been improved in a number of ways:
    • Call Frame Information (CFI) unwinding has been added for the ARM architecture. It relies on the .debug_frame section of ELF files.
    • A mode compatible with the ARM process initial register state has been added to the ARM 64-bit architecture.
    • Native and core-unwinding support for the ARM 64-bit architecture has been added.
  • All separate elfutils-robustify modifications have been included. The elfutils-robustify changes provide functional and stability fixes that are not a part of the official elfutils distribution.
  • The CVE-2014-0172 has been fixed. The bug was caused by an integer overflow that led to a heap-based buffer overflow in the libdw library. To fix the problem, an overflow check has been added before calling malloc to uncompress data.