Chapter 5. elfutils

elfutils is a collection of various binary tools, such as eu-objdump, eu-readelf, and other utilities that allow you to inspect and manipulate ELF files. See Table 5.1, “Tools Included in elfutils for Red Hat Developer Toolset” for a complete list of binary tools that are distributed with the Red Hat Developer Toolset version of elfutils.

Red Hat Developer Toolset is distributed with elfutils 0.176. This version is more recent than the version included the previous release of Red Hat Developer Toolset and provides some bug fixes and enhancements.

Table 5.1. Tools Included in elfutils for Red Hat Developer Toolset

NameDescription

eu-addr2line

Translates addresses into file names and line numbers.

eu-ar

Creates, modifies, and extracts files from archives.

eu-elfcmp

Compares relevant parts of two ELF files for equality.

eu-elflint

Verifies that ELF files are compliant with the generic ABI (gABI) and processor-specific supplement ABI (psABI) specification.

eu-findtextrel

Locates the source of text relocations in files.

eu-make-debug-archive

Creates an offline archive for debugging.

eu-nm

Lists symbols from object files.

eu-objdump

Displays information from object files.

eu-ranlib

Generates an index to the contents of an archive to make access to this archive faster.

eu-readelf

Displays information about ELF files.

eu-size

Lists section sizes of object or archive files.

eu-stack

A new utility for unwinding processes and cores.

eu-strings

Displays printable character sequences in files.

eu-strip

Discards all symbols from object files.

eu-unstrip

Combines stripped files with separate symbols and debug information.

5.1. Installing elfutils

In Red Hat Developer Toolset, elfutils is provided by the devtoolset-9-elfutils package and is automatically installed with devtoolset-9-toolchain as described in Section 1.5, “Installing Red Hat Developer Toolset”.

5.2. Using elfutils

To execute any of the tools that are part of elfutils, run the tool as follows:

$ scl enable devtoolset-9 'tool option ... file_name'

See Table 5.1, “Tools Included in elfutils for Red Hat Developer Toolset” for a list of tools that are distributed with elfutils. For example, to use the eu-objdump tool to inspect an object file:

$ scl enable devtoolset-9 'eu-objdump option ... object_file'

Note that you can execute any command using the scl utility, causing it to be run with the Red Hat Developer Toolset binaries used in preference to the Red Hat Enterprise Linux system equivalent. This allows you to run a shell session with Red Hat Developer Toolset binary tools as default:

$ scl enable devtoolset-9 'bash'
Note

To verify the version of elfutils you are using at any point:

$ which eu-objdump

Red Hat Developer Toolset’s eu-objdump executable path will begin with /opt. Alternatively, you can use the following command to confirm that the version number matches that for Red Hat Developer Toolset eu-objdump:

$ eu-objdump -V

5.3. Additional Resources

For more information about elfutils, see the resources listed below.

See Also