LLVM-DWARFDUMP(1)

πŸ’– LLVM-DWARFDUMP(1) β€” User Commands πŸ’–

okay bestie, sit down, hydrate, and let me tell you about llvm-dwarfdump from LLVM 14, because this little icon does a LOT and you're gonna want the whole tea. πŸ«–βœ¨


🌸 NAME 🌸

llvm-dwarfdump β€” manual page for llvm-dwarfdump 14


πŸ¦‹ DESCRIPTION πŸ¦‹

OVERVIEW: pretty-print DWARF debug information in object files and debug info archives. that's it, that's the whole vibe β€” it takes your debug info and makes it ✨ legible ✨.

USAGE:

llvm-dwarfdump [options] <input object files or .dSYM bundles>

OPTIONS:


πŸŽ€ Color Options πŸŽ€

  • --color β€” use colors in output (default=autodetect). she decides for herself whether the terminal is serving color energy.

πŸ’œ Generic Options πŸ’œ

  • --help β€” display available options (--help-hidden for more). yes there are hidden ones. iykyk.
  • --help-list β€” display list of available options (--help-list-hidden for more).
  • --version β€” display the version of this program.

🌈 Section-specific Dump Options 🌈

these control which sections get dumped. where applicable, these parameters take an optional =<offset> argument to dump only the entry at the specified offset. so precise. so demure. πŸ’…

  • -a β€” alias for --all
  • --all β€” dump all debug info sections
  • --apple-names β€” dump the .apple_names section
  • --apple-namespaces β€” dump the .apple_namespaces section
  • --apple-objc β€” dump the .apple_objc section
  • --apple-types β€” dump the .apple_types section
  • --debug-abbrev β€” dump the .debug_abbrev section
  • --debug-addr β€” dump the .debug_addr section
  • --debug-aranges β€” dump the .debug_aranges section
  • --debug-cu-index β€” dump the .debug_cu_index section
  • --debug-frame[=<offset>] β€” dump the .debug_frame section
  • --debug-gnu-pubnames β€” dump the .debug_gnu_pubnames section
  • --debug-gnu-pubtypes β€” dump the .debug_gnu_pubtypes section
  • --debug-info[=<offset>] β€” dump the .debug_info section
  • --debug-line[=<offset>] β€” dump the .debug_line section
  • --debug-line-str β€” dump the .debug_line_str section
  • --debug-loc[=<offset>] β€” dump the .debug_loc section
  • --debug-loclists[=<offset>] β€” dump the .debug_loclists section
  • --debug-macro β€” dump the .debug_macro section
  • --debug-names β€” dump the .debug_names section
  • --debug-pubnames β€” dump the .debug_pubnames section
  • --debug-pubtypes β€” dump the .debug_pubtypes section
  • --debug-ranges β€” dump the .debug_ranges section
  • --debug-rnglists β€” dump the .debug_rnglists section
  • --debug-str β€” dump the .debug_str section
  • --debug-str-offsets β€” dump the .debug_str_offsets section
  • --debug-tu-index β€” dump the .debug_tu_index section
  • --debug-types[=<offset>] β€” dump the .debug_types section
  • --eh-frame β€” alias for --debug-frame
  • --gdb-index β€” dump the .gdb_index section

⭐ Specific Options ⭐

  • -F β€” alias for --show-form.
  • --arch=<string> β€” dump debug information for the specified CPU architecture only. architectures may be specified by name or by number. this option can be specified multiple times, once for each desired architecture. so if you're juggling multiple archs, just say it again, she'll listen.
  • -c β€” alias for --show-children.
  • --diff β€” emit diff-friendly output by omitting offsets and addresses.
  • -f β€” alias for --find.
  • --find=<name> β€” search for the exact match for <name> in the accelerator tables and print the matching debug information entries. when no accelerator tables are available, the slower but more complete -name option can be used instead.
  • -i β€” alias for --ignore-case.
  • --ignore-case β€” ignore case distinctions when using --name.
  • --lookup=<address> β€” lookup <address> in the debug information and print out any available file, function, block and line table details.
  • -n β€” alias for --name
  • --name=<pattern> β€” find and print all debug info entries whose name (DW_AT_name attribute) matches the exact text in <pattern>. when used with the -regex option, <pattern> is interpreted as a regular expression.
  • -o=<filename> β€” redirect output to the specified file.
  • -p β€” alias for --show-parents.
  • --parent-recurse-depth=<N> β€” only recurse to a depth of N when displaying parents of debug info entries.
  • --quiet β€” use with -verify to not emit to STDOUT.
  • -r β€” alias for --recurse-depth.
  • --recurse-depth=<N> β€” only recurse to a depth of N when displaying children of debug info entries.
  • --regex β€” treat any <pattern> strings as regular expressions when searching with --name. if --ignore-case is also specified, the regular expression becomes case-insensitive.
  • --show-children β€” show a debug info entry's children when selectively printing entries.
  • --show-form β€” show DWARF form types after the DWARF attribute types.
  • --show-parents β€” show a debug info entry's parents when selectively printing entries.
  • --show-section-sizes β€” show the sizes of all debug sections, expressed in bytes.
  • --statistics β€” emit JSON-formatted debug info quality metrics.
  • --summarize-types β€” abbreviate the description of type unit entries.
  • -u β€” alias for --uuid.
  • --uuid β€” show the UUID for each architecture.
  • -v β€” alias for --verbose.
  • --verbose β€” print more low-level encoding details.
  • --verify β€” verify the DWARF debug info.
  • -x β€” alias for --regex

🫢 oh and one more thing bestie β€” pass @FILE as an argument to read options from FILE. it's giving "i put my whole config in a file and let her read it" energy. iconic.

that's the whole page, no crumbs left πŸ’– this was llvm-dwarfdump 14, dated May 2025, and yes she's still serving user commands realness. periodt. πŸŽ€βœ¨πŸ‘‘

πŸ“¦ where this page comes from