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