LLVM-READELF(1)
β¨ NAME β¨
okay bestie, so this is llvm-readelf β the GNU-style LLVM Object Reader π
she's from the LLVM manual pages and she's here to spill all the tea about your object files.
πΈ SYNOPSIS πΈ
llvm-readelf [options] [input...]
π¦ DESCRIPTION π¦
So like, llvm-readelf shows you the low-level, format-specific info about one or more object files. It's giving microscope energy π¬ she does not do surface-level, she goes deep.
If an input is literally -, then llvm-readelf reads from standard input instead. Otherwise it reads from the filenames you gave it, bestie. Simple as.
π OPTIONS π
--all,-aβ the "give me everything" button β¨ same as turning on all the main display options that actually apply to the file format.--addrsigβ shows the address-significance table π«Ά--arch-specific,-Aβ shows architecture-specific info, like the ARM attributes section on ARM π--bb-addr-mapβ dumps the contents of the basic block address map section(s). These hold the address of every function plus the relative offset of each basic block π₯--decompress,-zβ when you pair it with-xor-p, it dumps the decompressed section content. If the section(s) aren't compressed, they just get displayed as-is. No drama π--demangle,-Cβ shows demangled symbol names in the output β¨--dependent-librariesβ shows the dependent libraries section π--dyn-relocationsβ shows the dynamic relocation entries π--dyn-symbols,--dyn-symsβ shows the dynamic symbol table π«--dynamic-table,--dynamic,-dβ shows the dynamic table π--cg-profileβ shows the callgraph profile section πΈοΈ--histogram,-Iβ shows a bucket list histogram for dynamic symbol hash tables π--elf-linker-optionsβ shows the linker options section π--elf-output-style=<value>β formats ELF info in the style you picked. Valid options areLLVM,GNU, andJSON.LLVMis the expanded, structured format.GNUβ which is the default β mimics the equivalent GNU readelf output.JSONis JSON-formatted output meant for machines to consume π€--extra-sym-infoβ shows extra info (the section name) when it's showing symbols π·οΈ--section-groups,-gβ shows section groups ποΈ--expand-relocsβ when you use it with--relocations, it shows each relocation in an expanded multi-line format π--file-header,-hβ shows file headers π--gnu-hash-tableβ shows the GNU hash table for dynamic symbols π--hash-symbolsβ shows the expanded hash table with dynamic symbol data π--hash-tableβ shows the hash table for dynamic symbols #οΈβ£--headers,-eβ same as setting--file-header,--program-headers, and--sectionsall at once π₯--helpβ shows a summary of the command line options π--hex-dump=<section[,section,...]>,-xβ shows the specified section(s) as hexadecimal bytes. section can be a section index or a section name π’--memtagβ shows info about memory tagging present in the binary. This includes the various memtag-specific dynamic entries, decoded global descriptor sections, and decoded Android-specific ELF notes π§--needed-libsβ shows the needed libraries π--no-demangleβ does not show demangled symbol names in the output. This one is on by default, bestie π--notes,-nβ shows all notes π--pretty-printβ when used with--elf-output-style, the JSON output gets formatted in a more readable way π--program-headers,--segments,-lβ shows the program headers π§©--relocations,--relocs,-rβ shows the relocation entries in the file π--sections,--section-headers,-Sβ shows all sections ποΈ--section-dataβ when used with--sections, shows section data for every section displayed. Heads up: this option has no effect for GNU style output β οΈ--section-details,-tβ shows all section details. Use it as an alternative to--sectionsπ--section-mappingβ shows the section to segment mapping πΊοΈ--section-relocationsβ when used with--sections, shows relocations for every section displayed. This option has no effect for GNU style output β οΈ--section-symbolsβ when used with--sections, shows symbols for every section displayed. This option has no effect for GNU style output β οΈ--stackmapβ shows contents of the stackmap section πΊοΈ--stack-sizesβ shows the contents of the stack sizes section(s), i.e. pairs of function names and the size of their stack frames. Currently this is only implemented for GNU style output π«--string-dump=<section[,section,...]>,-pβ shows the specified section(s) as a list of strings. section can be a section index or a section name π§΅--symbols,--syms,-sβ shows the symbol table. It also shows the dynamic symbol table when using GNU output style for ELF π--unwind,-uβ shows unwind information π--versionβ shows the version of thellvm-readelfexecutable π·οΈ--version-info,-Vβ shows version sections π--wide,-Wβ ignored, for GNU readelf compatibility. The output is already similar to what you'd get using-Wwith GNU readelf π@<FILE>β reads command-line options from the response file<FILE>π
π EXIT STATUS π
llvm-readelf returns 0 under normal operation. If there were any errors, she returns a non-zero exit code. periodt π
π«Ά SEE ALSO π«Ά
llvm-nm(1), llvm-objdump(1), llvm-readobj(1) β go read those next, bestie, iykyk π
π AUTHOR π
Maintained by the LLVM Team (https://llvm.org/). iconic behavior fr fr.
π COPYRIGHT π
2003-2025, LLVM Project
okay that's the whole page!! π brought to you by the LLVM Project, version dated 2025-09-03, page 20 of the manual β mwah, take care of her, she's a legend πβ¨
π¦ where this page comes from
- fedora 43: llvm20 20.1.8-2.fc43 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- fedora 43: llvm20 20.1.8-2.fc43 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- fedora 44: llvm20 20.1.8-2.fc44 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- fedora 44: llvm20 20.1.8-2.fc44 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms