LLVM-DWARFDUMP(1)

πŸ“¦
version 16.0.6 Β· 3 versions
, in ubuntu noble

✨ NAME ✨

llvm-dwarfdump β€” okay so this is the manual page for llvm-dwarfdump 16, and it's the tool that spills all your DWARF debug info tea. πŸ’…

🌸 DESCRIPTION 🌸

OVERVIEW: it pretty-prints DWARF debug information in object files and debug info archives. no cap, it's giving "microscope for your binaries." πŸ”¬βœ¨

USAGE:

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

πŸ’– OPTIONS πŸ’–

πŸŽ€ Color Options

  • --color β€” adds color to the output, bestie 🌈 (default=autodetect).

⭐ Generic Options

  • --help β€” shows you all the available options (and if you want even more, --help-hidden has the hidden ones πŸ‘€).
  • --help-list β€” shows you a list of the available options (and --help-list-hidden for the secret menu πŸ™ˆ).
  • --version β€” prints the version of this program. slay.

πŸ¦‹ Section-specific Dump Options

These are the ones that control which sections get dumped. Where it applies, these take an optional =<offset> argument so you only dump the entry at that exact offset. ✨

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

πŸ’œ Specific Options

  • -F β€” alias for --show-form.
  • --arch=<string> β€” only dumps debug information for the CPU architecture you name. you can name the architecture by name or by number. and yes bestie, you can pass this option multiple times, once for each architecture you want. πŸ‘‘
  • -c β€” alias for --show-children.
  • --diff β€” emits diff-friendly output by leaving out offsets and addresses. perfect for comparison szn 🫢
  • -f β€” alias for --find.
  • --find=<name> β€” searches for the exact match for <name> in the accelerator tables and prints the matching debug information entries. when no accelerator tables are available, you can use the slower but more complete -name option instead. 🐒
  • -i β€” alias for --ignore-case.
  • --ignore-case β€” ignores case distinctions when you're using --name.
  • --lookup=<address> β€” looks up <address> in the debug information and prints out any available file, function, block and line table details. πŸ”
  • -n β€” alias for --name
  • --name=<pattern> β€” finds and prints all debug info entries whose name (the DW_AT_name attribute) matches the exact text in <pattern>. when you use it with the -regex option, <pattern> gets interpreted as a regular expression. ✨
  • -o <filename> β€” redirects output to the file you specify. πŸ“
  • -p β€” alias for --show-parents.
  • --parent-recurse-depth=<N> β€” only recurses to a depth of N when displaying the parents of debug info entries.
  • --quiet β€” use it with -verify so it doesn't emit to STDOUT. 🀫
  • -r β€” alias for --recurse-depth.
  • --recurse-depth=<N> β€” only recurses to a depth of N when displaying the children of debug info entries.
  • --regex β€” treats any <pattern> strings as regular expressions when searching with --name. and if --ignore-case is also specified, the regular expression becomes case-insensitive. πŸ’…
  • --show-children β€” shows a debug info entry's children when you're selectively printing entries. 🧚
  • --show-form β€” shows DWARF form types after the DWARF attribute types.
  • --show-parents β€” shows a debug info entry's parents when you're selectively printing entries. 🫢
  • --show-section-sizes β€” shows the sizes of all debug sections, expressed in bytes.
  • --show-sources β€” shows the sources across all compilation units.
  • --statistics β€” emits JSON-formatted debug info quality metrics. πŸ“Š
  • --summarize-types β€” abbreviates the description of type unit entries.
  • -u β€” alias for --uuid.
  • --uuid β€” shows the UUID for each architecture. πŸ†”
  • -v β€” alias for --verbose.
  • --verbose β€” prints more low-level encoding details. πŸ‘€
  • --verify β€” verifies the DWARF debug info. βœ…
  • -x β€” alias for --regex

and oh β€” you can also pass @FILE as an argument to read options from FILE. πŸ“‚βœ¨

🌟 that's the whole page, diva. it's llvm-dwarfdump 16, dated April 2024, straight outta LLVM. mwah, now go debug something iconic πŸ’–πŸ‘‘
πŸ“¦ where this page comes from