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' and 'Default'.

.. 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:: --dump-debug-map

 Dump the *executable*'s debug-map (the list of the object files containing the
 debug information) in YAML format and exit. Not DWARF link will take place.

.. 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.

.. option:: --help, -h

 Print this help output.

.. option:: --minimize, -z

 When used when creating a dSYM file, this option will suppress the emission of
 the .debug_inlines, .debug_pubnames, and .debug_pubtypes sections since
 dsymutil currently has better equivalents: .apple_names and .apple_types. When
 used in conjunction with ``--update`` option, this option will cause redundant
 accelerator tables to be removed.

.. 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:: --papertrail

 When running dsymutil as 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.

.. 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:: --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:: --symbol-map <bcsymbolmap>

 Update the existing dSYMs inplace using symbol map specified.

.. 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.

.. 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)`
