DSYMUTIL(1)
π DSYMUTIL(1) π
okay so this is the dsymutil page from the LLVM manual set, and bestie, it's literally the tool that stitches your DWARF debug info back together. buckle up π
β¨ NAME β¨
dsymutil β manipulate archived DWARF debug symbol files π¦
β¨ SYNOPSIS β¨
dsymutil [options] executable
β¨ DESCRIPTION β¨
so here's the tea β β dsymutil links the DWARF debug information it finds in the object files for an executable, using the debug symbol info chilling in that executable's symbol table. it's giving matchmaker, honestly π
by default, the linked debug information gets dropped into a .dSYM bundle with the same name as the executable. cute, tidy, iconic. π
β¨ OPTIONS β¨
--accelerator=<accelerator type>β pick which kind of accelerator table you want. the valid options are'Apple','Dwarf','Default'and'None'. choose your fighter π--arch <arch>β only link DWARF debug info for the CPU architecture types you name here, and yeah you can name them by name. β οΈ if you use this and any architecture can't be properly linked, you get an error. you can pass this option multiple times β once for each architecture you want. by default all CPU architectures get linked, and if any of them can't be properly linked,dsymutilreturns an error. no silent failures here, we don't do that π--dump-debug-mapβ dump the executable's debug-map (that's the list of object files holding the debug info) in YAML format, then dip. no DWARF link happens at all. just vibes and YAML β¨--flat,-fβ produce a flat dSYM file. a.dwarfextension gets appended to the executable name β unless you specified the output file with the-ooption, in which case, you already chose. π«Ά--gen-reproducerβ generate a reproducer made of the input object files. this is an alias forβreproducer=GenerateOnExit. π§--help,-hβ print this help output. the classic. the GOAT. π--keep-function-for-staticβ makes a static variable keep the enclosing function, even if it would've been omitted otherwise. protective energy fr fr π‘οΈ--minimize,-zβ when you're creating a dSYM file, this one suppresses the emission of the.debug_inlines,.debug_pubnames, and.debug_pubtypessections, becausedsymutilcurrently has better equivalents:.apple_namesand.apple_types. and when you use it together with the--updateoption, it'll cause redundant accelerator tables to be removed. cleanup era π§Ή--no-odrβ don't use ODR (One Definition Rule) for uniquing C++ types. hard pass on the ODR, respectfully. π--no-outputβ do the link in memory, but don't emit the result file. all the work, none of the artifact. it's giving invisible labor π--no-swiftmodule-timestampβ don't check the timestamp forswiftmodulefiles. time is a construct anyway β°--num-threads <threads>,-j <threads>β sets the maximum number (n) of simultaneous threads to use when linking multiple architectures. multitasking queen π--object-prefix-map <prefix=remapped>β remap object file paths (but no source paths) before processing. use this for Clang objects where the module cache location was remapped using-fdebug-prefix-mapβ it helpsdsymutilfind the Clang module cache. πΊοΈ--oso-prepend-path <path>β specify a path to prepend to all debug symbol object file paths. β¨--out <filename>,-o <filename>β specify an alternate path to place the dSYM bundle. the default dSYM bundle path is created by appending.dSYMto the executable name. your call, bestie π--papertrailβ when you're runningdsymutilas part of your build system, it can be desirable for warnings to be part of the end product, rather than just being emitted to the output stream. when enabled, warnings get embedded in the linked DWARF debug information. leaving a paper trail, literally π§»β¨--remarks-output-format <format>β specify the format to be used when serializing the linked remarks. π--remarks-prepend-path <path>β specify a directory to prepend the paths of the external remark files. π--reproducer <mode>β specify the reproducer generation mode. valid options are'GenerateOnExit','GenerateOnCrash','Use','Off'. pick your path π--statisticsβ print statistics about the contribution of each object file to the linked debug info. this prints a table after linking with the object file name, the size of the debug info in the object file (in bytes), and the size contributed (in bytes) to the linked dSYM. the table is sorted by output size, listing the object files with the largest contribution first. leaderboard behavior, we love to see it ππ₯--symbol-map <bcsymbolmap>β update the existing dSYMs inplace using the symbol map specified. inplace. yes. π«Ά-s,--symtabβ dumps the symbol table found in the executable or object file(s) and exits. peek behind the curtain π-Sβ output textual assembly instead of a binary dSYM companion file. old school, textual, slay βοΈ--toolchain <toolchain>β embed the toolchain in the dSYM bundle's property list. π οΈ-u,--updateβ update an existing dSYM file to contain the latest accelerator tables and other DWARF optimizations. this option will rebuild the'.apple_names'and'.apple_types'hashed accelerator tables. glow-up for your dSYM π--use-reproducer <path>β use the object files from the given reproducer path. alias forβreproducer=Use. π§--verboseβ display verbose information when linking. talk your talk π£οΈ--verifyβ run the DWARF verifier on the linked DWARF debug info. trust but verify, always π-v,--versionβ display the version of the tool. iykyk β-yβ treat the executable as a YAML debug-map rather than an executable. plot twist π
β¨ EXIT STATUS β¨
dsymutil returns 0 if the DWARF debug information was linked successfully. otherwise, it returns 1. simple as that β no in-between, no "it depends" π
β¨ SEE ALSO β¨
llvm-dwarfdump(1) β go give it a read, bestie π¦
β¨ AUTHOR β¨
Maintained by the LLVM Team (https://llvm.org/). π
β¨ COPYRIGHT β¨
2003-2023, LLVM Project
okay that's the whole page, no notes π and for the record: this was the LLVM manual, version 15, dated 2023-07-14. periodt. π β¨π
π¦ where this page comes from
- ubuntu jammy: llvm-15 1:15.0.7-0ubuntu0.22.04.3 Β· APACHE-2-LLVM-EXCEPTIONS
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms