Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 1 | dsymutil - manipulate archived DWARF debug symbol files |
| 2 | ======================================================= |
| 3 | |
James Henderson | a056684 | 2019-06-27 13:24:46 +0000 | [diff] [blame^] | 4 | .. program:: dsymutil |
| 5 | |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 6 | SYNOPSIS |
| 7 | -------- |
| 8 | |
| 9 | | :program:`dsymutil` [*options*] *executable* |
| 10 | |
| 11 | DESCRIPTION |
| 12 | ----------- |
| 13 | |
| 14 | :program:`dsymutil` links the DWARF debug information found in the object files |
| 15 | for an executable *executable* by using debug symbols information contained in |
| 16 | its symbol table. By default, the linked debug information is placed in a |
| 17 | ``.dSYM`` bundle with the same name as the executable. |
| 18 | |
| 19 | OPTIONS |
| 20 | ------- |
Adrian Prantl | 3c6491d | 2017-11-06 16:52:05 +0000 | [diff] [blame] | 21 | .. option:: --arch=<arch> |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 22 | |
| 23 | Link DWARF debug information only for specified CPU architecture types. |
| 24 | Architectures may be specified by name. When using this option, an error will |
| 25 | be returned if any architectures can not be properly linked. This option can |
| 26 | be specified multiple times, once for each desired architecture. All CPU |
| 27 | architectures will be linked by default and any architectures that can't be |
| 28 | properly linked will cause :program:`dsymutil` to return an error. |
| 29 | |
Adrian Prantl | 3c6491d | 2017-11-06 16:52:05 +0000 | [diff] [blame] | 30 | .. option:: --dump-debug-map |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 31 | |
Adrian Prantl | 3c6491d | 2017-11-06 16:52:05 +0000 | [diff] [blame] | 32 | Dump the *executable*'s debug-map (the list of the object files containing the |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 33 | debug information) in YAML format and exit. Not DWARF link will take place. |
| 34 | |
Adrian Prantl | 3c6491d | 2017-11-06 16:52:05 +0000 | [diff] [blame] | 35 | .. option:: -f, --flat |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 36 | |
| 37 | Produce a flat dSYM file. A ``.dwarf`` extension will be appended to the |
| 38 | executable name unless the output file is specified using the -o option. |
| 39 | |
Jonas Devlieghere | cca341b | 2018-01-30 19:54:16 +0000 | [diff] [blame] | 40 | |
| 41 | .. option:: -z, --minimize |
| 42 | |
| 43 | When used when creating a dSYM file, this option will suppress the emission of |
| 44 | the .debug_inlines, .debug_pubnames, and .debug_pubtypes sections since |
Jonas Devlieghere | d4034d2 | 2018-02-08 10:48:54 +0000 | [diff] [blame] | 45 | dsymutil currently has better equivalents: .apple_names and .apple_types. When |
| 46 | used in conjunction with --update option, this option will cause redundant |
| 47 | accelerator tables to be removed. |
Jonas Devlieghere | cca341b | 2018-01-30 19:54:16 +0000 | [diff] [blame] | 48 | |
Adrian Prantl | 3c6491d | 2017-11-06 16:52:05 +0000 | [diff] [blame] | 49 | .. option:: --no-odr |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 50 | |
| 51 | Do not use ODR (One Definition Rule) for uniquing C++ types. |
| 52 | |
Adrian Prantl | 3c6491d | 2017-11-06 16:52:05 +0000 | [diff] [blame] | 53 | .. option:: --no-output |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 54 | |
| 55 | Do the link in memory, but do not emit the result file. |
| 56 | |
Adrian Prantl | 3c6491d | 2017-11-06 16:52:05 +0000 | [diff] [blame] | 57 | .. option:: --no-swiftmodule-timestamp |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 58 | |
| 59 | Don't check the timestamp for swiftmodule files. |
| 60 | |
Adrian Prantl | 3c6491d | 2017-11-06 16:52:05 +0000 | [diff] [blame] | 61 | .. option:: -j <n>, --num-threads=<n> |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 62 | |
| 63 | Specifies the maximum number (``n``) of simultaneous threads to use when |
| 64 | linking multiple architectures. |
| 65 | |
| 66 | .. option:: -o <filename> |
| 67 | |
| 68 | Specifies an alternate ``path`` to place the dSYM bundle. The default dSYM |
| 69 | bundle path is created by appending ``.dSYM`` to the executable name. |
| 70 | |
Adrian Prantl | 3c6491d | 2017-11-06 16:52:05 +0000 | [diff] [blame] | 71 | .. option:: --oso-prepend-path=<path> |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 72 | |
| 73 | Specifies a ``path`` to prepend to all debug symbol object file paths. |
| 74 | |
Jonas Devlieghere | 9e3e7a9 | 2018-04-02 10:40:43 +0000 | [diff] [blame] | 75 | .. option:: --papertrail |
| 76 | |
| 77 | When running dsymutil as part of your build system, it can be desirable for |
| 78 | warnings to be part of the end product, rather than just being emitted to the |
| 79 | output stream. When enabled warnings are embedded in the linked DWARF debug |
| 80 | information. |
| 81 | |
Adrian Prantl | 3c6491d | 2017-11-06 16:52:05 +0000 | [diff] [blame] | 82 | .. option:: -s, --symtab |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 83 | |
Adrian Prantl | 3c6491d | 2017-11-06 16:52:05 +0000 | [diff] [blame] | 84 | Dumps the symbol table found in *executable* or object file(s) and exits. |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 85 | |
Jonas Devlieghere | 2902a21 | 2018-03-08 10:39:12 +0000 | [diff] [blame] | 86 | .. option:: --toolchain |
| 87 | |
| 88 | Embed the toolchain in the dSYM bundle's property list. |
| 89 | |
Jonas Devlieghere | d4034d2 | 2018-02-08 10:48:54 +0000 | [diff] [blame] | 90 | .. option:: -u, --update |
| 91 | |
| 92 | Update an existing dSYM file to contain the latest accelerator tables and |
| 93 | other DWARF optimizations. This option will rebuild the '.apple_names' and |
| 94 | '.apple_types' hashed accelerator tables. |
| 95 | |
Adrian Prantl | 3c6491d | 2017-11-06 16:52:05 +0000 | [diff] [blame] | 96 | .. option:: -v, --verbose |
Jonas Devlieghere | fb7bf1d | 2017-11-02 18:44:54 +0000 | [diff] [blame] | 97 | |
| 98 | Display verbose information when linking. |
| 99 | |
| 100 | .. option:: --version |
| 101 | |
| 102 | Display the version of the tool. |
| 103 | |
| 104 | .. option:: -y |
| 105 | |
| 106 | Treat *executable* as a YAML debug-map rather than an executable. |
| 107 | |
| 108 | EXIT STATUS |
| 109 | ----------- |
| 110 | |
| 111 | :program:`dsymutil` returns 0 if the DWARF debug information was linked |
| 112 | successfully. Otherwise, it returns 1. |
| 113 | |
| 114 | SEE ALSO |
| 115 | -------- |
| 116 | |
| 117 | :manpage:`llvm-dwarfdump(1)` |