LLVM-DWARFUTIL(1)
π LLVM-DWARFUTIL(1) β the LLVM manual page, bestie edition π
okay so picture this: llvm-dwarfutil, from the LLVM fam. a whole little tool for copying and manipulating debug info, and honestly? she's iconic. let's get into it β¨
πΈ NAME πΈ
llvm-dwarfutil β a tool to copy and manipulate debug info. that's the whole gig. no cap.
π¦ SYNOPSIS π¦
llvm-dwarfutil [options] input output
like, one input, one output, and any options you feel like sprinkling in between. simple!
π DESCRIPTION π
llvm-dwarfutil is a tool to copy and manipulate debug info. main character energy, truly.
In basic usage, it makes a semantic copy of the input to the output. that's the baseline. but the second you specify any options, the output may be modified along the way β e.g. by removing unused debug info. so it's a copy, but make it fashion β¨
If - is specified for the input file, the input is read from the program's standard input stream. If - is specified for the output file, the output is written to the standard output stream of the program. pipes, bestie. we love a pipeline moment π«Ά
πΌ heads up, gentle reminder: the tool is still in active development. she's growing, ok? be nice to her.
π COMMAND-LINE OPTIONS π
the flags, the moment, the menu. every single one, no skipping π
--garbage-collectionβ removes pieces of debug information that are related to discarded sections. here's the lore: when the linker does section garbage collection, the abandoned debug info gets left behind, and that abandoned debug info references address ranges using tombstone values. so when this option is specified, the tool removes debug info which is marked with the tombstone value. bye bye leftovers π
That option is enabled by default. slay.
--odr-deduplicationβ removes duplicated types (if "One Definition Rule" is supported by the source language). keeps the first type definition and removes the other definitions, potentially significantly reducing the size of the output debug info. so efficient. obsessed π₯
That option is enabled by default. periodt.
--help,-hβ print a summary of command line options. your little cheat sheet π--no-garbage-collectionβ disable--garbage-collection. the off switch for the tombstone cleanup.--no-odr-deduplicationβ disable--odr-deduplication. keeps all your duplicate types around.--no-separate-debug-fileβ disable--separate-debug-file.--num-threads=<n>,-jβ specifies the maximum number (n) of simultaneous threads to use for processing. go parallel, bestie π§--separate-debug-fileβ generate a separate file containing the output debug info. usingllvm-dwarfutilwith that option equals to the following set of commands:
llvm-objcopy --only-keep-debug in-file out-file.debug
llvm-objcopy --strip-debug in-file out-file
llvm-objcopy --add-gnu-debuglink=out-file.debug out-file
literally the same thing, just one command instead of three π«
--tombstone=<value>β value can be one of the following values:bfd: zero for all addresses and[1,1]for DWARF v4 (or less) address ranges and exec.maxpc:-1for all addresses and-2for DWARF v4 (or less) address ranges.universal: bothbfdandmaxpc.exec: match with address ranges of executable sections.
The value universal is used by default. π
--verboseβ enable verbose logging. note: this option disables multi-thread mode. yes, the chatter costs you your threads π--verifyβ run the DWARF verifier on the output DWARF debug info. vibe check, but for debug info β--versionβ print the version of this program.
π SUPPORTED FORMATS π
the following formats are currently supported by llvm-dwarfutil:
ELF
that's the list. one icon π
π EXIT STATUS π
llvm-dwarfutil exits with a non-zero exit code if there is an error. otherwise, it exits with code 0. clean exits only, bestie π
π BUGS π
to report bugs, please visit https://github.com/llvm/llvm-project/labels/tools:llvm-dwarfutil/. tell them everything, they wanna know π¦
β AUTHOR β
Maintained by the LLVM Team (https://llvm.org/).
πΈ COPYRIGHT πΈ
2003-2026, LLVM Project
okay that's the whole page!! mwah π
π little sign-off for the girlies who read to the bottom: this one's from the LLVM Project, page23of the manual, dated2026-10-06β so go forth and copy your debug info with confidence. xoxo π«Άβ¨
π¦ where this page comes from
- centos-stream 9: llvm 23.1.3-1.el9 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- centos-stream 9: llvm 23.1.3-1.el9 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms