| # dsymutil - manipulate archived DWARF debug symbol files | |
| ```{program} dsymutil | |
| ``` | |
| ## SYNOPSIS | |
| {program}`dsymutil` \[*options*\] *executable* | |
| ## DESCRIPTION | |
| {program}`dsymutil` links the DWARF debug information found in the object files | |
| for an executable *executable* by using debug symbols information contained in | |
| its symbol table. By default, the linked debug information is placed in a | |
| `.dSYM` bundle with the same name as the executable. | |
| ## OPTIONS | |
| :::{option} --accelerator=<accelerator type> | |
| Specify the desired type of accelerator table. Valid options are 'Apple', | |
| 'Dwarf', 'Default' and 'None'. | |
| ::: | |
| :::{option} --allow <path> | |
| Only process debug map objects listed in the YAML file at \<path>. Only filters | |
| N_OSO entries. If `--oso-prepend-path` is specified, the path prefix applies, | |
| i.e. paths in the file should exact match that of N_OSO entries. | |
| ::: | |
| :::{option} --arch <arch> | |
| Link DWARF debug information only for specified CPU architecture types. | |
| Architectures may be specified by name. When using this option, an error will | |
| be returned if any architectures can not be properly linked. This option can | |
| be specified multiple times, once for each desired architecture. All CPU | |
| architectures will be linked by default and any architectures that can't be | |
| properly linked will cause {program}`dsymutil` to return an error. | |
| ::: | |
| :::{option} --build-variant-suffix <suffix=buildvariant> | |
| Specify the build variant suffix used to build the executable file. | |
| There can be multiple variants for the binary of a product, each built | |
| slightly differently. The most common build variants are 'debug' and | |
| 'profile'. Setting the DYLD_IMAGE_SUFFIX environment variable will | |
| cause dyld to load the specified variant at runtime. | |
| ::: | |
| :::{option} --codesign <identity> | |
| Code sign the dSYM bundle with the given signing identity after linking. | |
| Cannot be used with {option}`--flat` or {option}`--no-output`. | |
| ::: | |
| :::{option} --disallow <path> | |
| Exclude debug map objects listed in the YAML file at \<path>. Only filters | |
| N_OSO entries. If `--oso-prepend-path` is specified, the path prefix applies, | |
| i.e. paths in the file should exact match that of N_OSO entries. | |
| ::: | |
| ::::{option} --dump-debug-map | |
| Dump the *executable*'s debug-map (the list of the object files containing the | |
| debug information) in YAML format and exit. No DWARF link will take place. | |
| :::{option} -D <path> | |
| ::: | |
| Specify a directory that contain dSYM files to search for. | |
| This is used for mergeable libraries, so dsymutil knows where to look | |
| for dSYM files with debug information about symbols present in those | |
| libraries. | |
| :::: | |
| :::{option} --embed-resource <src-path>=<bundle-relative-path> | |
| Copy a file or directory into the dSYM bundle's `Contents/Resources/` | |
| directory. The argument is `<source-path>=<destination-relative-to-Resources>`. | |
| If the source is a directory, its contents are copied recursively. This option | |
| can be specified multiple times. | |
| ::: | |
| :::{option} --fat64 | |
| Use a 64-bit header when emitting universal binaries. | |
| ::: | |
| :::{option} --flat, -f | |
| Produce a flat dSYM file. A `.dwarf` extension will be appended to the | |
| executable name unless the output file is specified using the `-o` option. | |
| ::: | |
| :::{option} --gen-reproducer | |
| Generate a reproducer consisting of the input object files. Alias for | |
| --reproducer=GenerateOnExit. | |
| ::: | |
| :::{option} --help, -h | |
| Print this help output. | |
| ::: | |
| :::{option} --include-swiftmodules-from-interface | |
| Whether or not to copy binary swiftmodules built from textual .swiftinterface | |
| files into the dSYM bundle. These typically come only from the SDK (since | |
| textual interfaces require library evolution) and thus are a waste of space to | |
| copy into the bundle. Turn this on if the swiftmodules are different from | |
| those in the SDK. | |
| ::: | |
| :::{option} --keep-function-for-static | |
| Make a static variable keep the enclosing function even if it would have been | |
| omitted otherwise. | |
| ::: | |
| :::{option} --no-object-timestamp | |
| Don't check timestamp for object files. | |
| ::: | |
| :::{option} --no-odr | |
| Do not use ODR (One Definition Rule) for uniquing C++ types. | |
| ::: | |
| :::{option} --no-output | |
| Do the link in memory, but do not emit the result file. | |
| ::: | |
| :::{option} --no-swiftmodule-timestamp | |
| Don't check the timestamp for swiftmodule files. | |
| ::: | |
| :::{option} --num-threads <threads>, -j <threads> | |
| Specifies the maximum number (`n`) of simultaneous threads to use when | |
| linking multiple architectures. | |
| ::: | |
| :::{option} --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 help dsymutil find the Clang module cache. | |
| ::: | |
| :::{option} --oso-prepend-path <path> | |
| Specifies a `path` to prepend to all debug symbol object file paths. | |
| ::: | |
| :::{option} --out <filename>, -o <filename> | |
| Specifies an alternate `path` to place the dSYM bundle. The default dSYM | |
| bundle path is created by appending `.dSYM` to the executable name. | |
| ::: | |
| :::{option} -q, --quiet | |
| Enable quiet mode and limit output. | |
| ::: | |
| :::{option} --remarks-drop-without-debug | |
| Drop remarks without valid debug locations. Without this flags, all remarks are kept. | |
| ::: | |
| :::{option} --remarks-output-format <format> | |
| Specify the format to be used when serializing the linked remarks. | |
| ::: | |
| :::{option} --remarks-prepend-path <path> | |
| Specify a directory to prepend the paths of the external remark files. | |
| ::: | |
| :::{option} --reproducer <mode> | |
| Specify the reproducer generation mode. Valid options are 'GenerateOnExit', | |
| 'GenerateOnCrash', 'Use', 'Off'. | |
| ::: | |
| :::{option} --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. | |
| ::: | |
| :::{option} -s, --symtab | |
| Dumps the symbol table found in *executable* or object file(s) and exits. | |
| ::: | |
| :::{option} -S | |
| Output textual assembly instead of a binary dSYM companion file. | |
| ::: | |
| :::{option} --toolchain <toolchain> | |
| Embed the toolchain in the dSYM bundle's property list. | |
| ::: | |
| :::{option} -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. | |
| ::: | |
| :::{option} --use-reproducer <path> | |
| Use the object files from the given reproducer path. Alias for | |
| --reproducer=Use. | |
| ::: | |
| :::{option} --verbose | |
| Display verbose information when linking. | |
| ::: | |
| :::{option} --verify | |
| Run the DWARF verifier on the linked DWARF debug info. | |
| ::: | |
| :::{option} -v, --version | |
| Display the version of the tool. | |
| ::: | |
| :::{option} -y | |
| Treat *executable* as a YAML debug-map rather than an executable. | |
| ::: | |
| ## EXIT STATUS | |
| {program}`dsymutil` returns 0 if the DWARF debug information was linked | |
| successfully. Otherwise, it returns 1. | |
| ## SEE ALSO | |
| {manpage}`llvm-dwarfdump(1)` | |