DSYMUTIL(1)
π DSYMUTIL(1) β the LLVM manual, but make it make sense π
okay bestie, gather round, because we're about to talk about dsymutil, and honestly? she's iconic. this is section 1 of the LLVM manual set, so like, command-line-tool territory. buckle up π
β¨ NAME β¨
dsymutil β manipulate archived DWARF debug symbol files π¦
β¨ SYNOPSIS β¨
dsymutil [options] executable
β¨ DESCRIPTION β¨
so here's the tea, bestie π dsymutil links up all the DWARF debug info it can find in the object files for an executable, and it does that by using the debug symbols info sitting inside that executable's symbol table. no cap.
and where does that linked debug info go by default? into a .dSYM bundle, named the exact same thing as the executable. slay. π
β¨ OPTIONS β¨
--accelerator=<accelerator type>β pick which flavour of accelerator table you want. the valid options are βAppleβ, βDwarfβ, βDefaultβ and βNoneβ. choose wisely π--arch <arch>β only link DWARF debug info for the CPU architecture types you name. you can specify architectures by name, and fr fr, if any of the architectures can't be properly linked you get an error back. you can drop this option multiple times, once per architecture you want. by default all CPU architectures get linked, and any that can't be properly linked will makedsymutilreturn an error. π--dump-debug-mapβ dumps the executable's debug-map (that's the list of object files holding the debug info) in YAML format, and then it dips. no DWARF link happens at all. periodt.--flat,-fβ produce a flat dSYM file. a.dwarfextension gets appended to the executable name, unless you specified the output file with the-ooption. π§--gen-reproducerβ generate a reproducer made of the input object files. it's an alias forβreproducer=GenerateOnExit.--help,-hβ print this help output. the classic.--keep-function-for-staticβ makes a static variable keep the enclosing function, even if it would've been omitted otherwise. keeping the family together π«Ά--minimize,-zβ when you use this while creating a dSYM file, it 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 will cause redundant accelerator tables to be removed. two birds, one stone π--no-odrβ do not use ODR (One Definition Rule) for uniquing C++ types.--no-outputβ do the link in memory, but do not emit the result file. all vibes, no files β¨--no-swiftmodule-timestampβ don't check the timestamp for swiftmodule files.--num-threads <threads>,-j <threads>β specifies 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, to helpdsymutilfind the Clang module cache. iykyk π₯--oso-prepend-path <path>β specifies a path to prepend to all debug symbol object file paths.--out <filename>,-o <filename>β specifies an alternate path to place the dSYM bundle. the default dSYM bundle path is created by appending.dSYMto the executable name. main character energy, choosing your own destination π--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 are embedded in the linked DWARF debug information. leaving a lil trail πΈ--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β. π--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 the output size, listing the object files with the largest contribution first. numbers girlies rise π₯--symbol-map <bcsymbolmap>β update the existing dSYMs inplace using the symbol map specified.-s,--symtabβ dumps the symbol table found inexecutableor object file(s) and exits.-Sβ output textual assembly instead of a binary dSYM companion file. old school, love that for us β¨--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_namesand.apple_typeshashed accelerator tables. glow-up time π--use-reproducer <path>β use the object files from the given reproducer path. it's an alias forβreproducer=Use.--verboseβ display verbose information when linking. she's chatty and we love her π--verifyβ run the DWARF verifier on the linked DWARF debug info. trust but verify, bestie π«Ά-v,--versionβ display the version of the tool.-yβ treatexecutableas 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. so like, 0 = ate, 1 = not ate. π
β¨ SEE ALSO β¨
β¨ AUTHOR β¨
maintained by the LLVM Team (https://llvm.org/). π«Ά
β¨ COPYRIGHT β¨
2003-2024, LLVM Project
okay that's the whole thing, bestie, and you absolutely understood all of it, i know you did π this was version 15, dated 2024-04-14, brought to you by the LLVM crew β go forth and link that DWARF debug info, you've got this π¦β¨π
π¦ where this page comes from
- ubuntu noble: llvm-16 1:16.0.6-23ubuntu4 Β· APACHE-2-LLVM-EXCEPTIONS
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms