---
name: "llvm-readelf"
section: "1"
platform: "linux"
package: "llvm"
version: "23.1.4-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/llvm-readelf"
---

# llvm-readelf(1)

GNU-style LLVM Object Reader

## NAME

llvm-readelf - GNU-style LLVM Object Reader

## SYNOPSIS

**llvm-readelf** \[*options*\] \[*input...*\]

## DESCRIPTION

The **llvm-readelf** tool displays low-level format-specific information about one or more object files.

If **input** is "**-**", **llvm-readelf** reads from standard input. Otherwise, it will read from the specified **filenames**.

## OPTIONS

- **--addrsig**

  Display the address-significance table.

  - **--all, -a**

    Equivalent to specifying all the main display options relevant to the file format.

- **--arch-specific, -A**

  Display architecture-specific information, e.g. the ARM attributes section on ARM.

- **--bb-addr-map**

  Display the contents of the basic block address map section(s), which contain the address of each function, along with the relative offset of each basic block.

- **--call-graph-info**

  Display the call graph section entries i.e. for each function its identifying information, each of its direct callees' information and for each indirect callee a 64-bit number representing the callee's function signature. This information can be used to reconstruct the program call graph.

- **--cg-profile**

  Display the callgraph profile section.

- **--decompress, -z**

  Dump decompressed section content when used with **-x** or **-p**. If the section(s) are not compressed, they are displayed as is.

- **--demangle, -C**

  Display demangled symbol names in the output.

- **--dependent-libraries**

  Display the dependent libraries section.

- **--dynamic-table, --dynamic, -d**

  Display the dynamic table.

- **--dyn-relocations**

  Display the dynamic relocation entries.

- **--dyn-symbols, --dyn-syms**

  Display the dynamic symbol table.

- **--elf-linker-options**

  Display the linker options section.

- **--elf-output-style=\<value\>**

  Format ELF information in the specified style. Valid options are **LLVM**, **GNU**, and **JSON**. **LLVM** output is an expanded and structured format. **GNU** (the default) output mimics the equivalent GNU **readelf** output. **JSON** is JSON formatted output intended for machine consumption.

- **--extra-sym-info**

  Display extra information (section name) when showing symbols.

- **--expand-relocs**

  When used with **--relocations**, display each relocation in an expanded multi-line format.

- **--file-header, -h**

  Display file headers.

- **--gnu-hash-table**

  Display the GNU hash table for dynamic symbols.

- **--hash-symbols**

  Display the expanded hash table with dynamic symbol data.

- **--hash-table**

  Display the hash table for dynamic symbols.

- **--headers, -e**

  Equivalent to setting: **--file-header**, **--program-headers**, and **--sections**.

- **--help**

  Display a summary of command line options.

- **--hex-dump=\<section\[,section,...\]\>, -x**

  Display the specified section(s) as hexadecimal bytes. **section** may be a section index or section name.

- **--histogram, -I**

  Display a bucket list histogram for dynamic symbol hash tables.

- **--memtag**

  Display information about memory tagging present in the binary. This includes various memtag-specific dynamic entries, decoded global descriptor sections, and decoded Android-specific ELF notes.

- **--needed-libs**

  Display the needed libraries.

- **--no-demangle**

  Do not display demangled symbol names in the output. On by default.

- **--notes, -n**

  Display all notes.

- **--offloading**

  Display list of HIP offload bundles.

- **--pretty-print**

  When used with **--elf-output-style**, JSON output will be formatted in a more readable format.

- **--program-headers, --segments, -l**

  Display the program headers.

- **--relocations, --relocs, -r**

  Display the relocation entries in the file.

- **--section-data**

  When used with **--sections**, display section data for each section shown. This option has no effect for GNU style output.

- **--section-details, -t**

  Display all section details. Used as an alternative to **--sections**.

- **--section-groups, -g**

  Display section groups.

- **--section-mapping**

  Display the section to segment mapping.

- **--section-relocations**

  When used with **--sections**, display relocations for each section shown. This option has no effect for GNU style output.

- **--sections, --section-headers, -S**

  Display all sections.

- **--section-symbols**

  When used with **--sections**, display symbols for each section shown. This option has no effect for GNU style output.

- **--stackmap**

  Display contents of the stackmap section.

- **--stack-sizes**

  Display the contents of the stack sizes section(s), i.e. pairs of function names and the size of their stack frames. Currently only implemented for GNU style output.

- **--string-dump=\<section\[,section,...\]\>, -p**

  Display the specified section(s) as a list of strings. **section** may be a section index or section name.

- **--symbols, --syms, -s**

  Display the symbol table. Also display the dynamic symbol table when using GNU output style for ELF.

- **--unwind, -u**

  Display unwind information.

- **--version**

  Display the version of the **llvm-readelf** executable.

- **--version-info, -V**

  Display version sections.

- **--wide, -W**

  Ignored for GNU readelf compatibility. The output is already similar to when using -W with GNU readelf.

- **@\<FILE\>**

  Read command-line options from response file *\<FILE\>*.

## EXIT STATUS

**llvm-readelf** returns 0 under normal operation. It returns a non-zero exit code if there were any errors.

## SEE ALSO

**[llvm-nm(1)](/llvm-nm/1.md) \<llvm-nm.html\>**, **[llvm-objdump(1)](/llvm-objdump/1.md) \<llvm-objdump.html\>**, **[llvm-readobj(1)](/llvm-readobj/1.md) \<llvm-readobj.html\>**

## Author

Maintained by the LLVM Team (https://llvm.org/).

## Copyright

2003-2026, LLVM Project
