Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

dsymutil(1) [osx man page]

dsymutil(1)						    BSD General Commands Manual 					       dsymutil(1)

dsymutil -- manipulate archived DWARF debug symbol files. SYNOPSIS
dsymutil [--arch=ARCH] [--out=path] exe_path DESCRIPTION
dsymutil links the DWARF debug information found in the object files for an executable exe_path by using debug symbols information contained in its symbol table. The following options are available: --arch=ARCH Link DWARF debug information only for specified CPU architecture types. Architectures may be specified by name or by number. 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 not cause dsymutil to return an error as long as at least one architecture was able to link successfully. -h, --help Display the help documentation for this command. -f, --flat 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. -o path, --out=path Specifies an alternate path to place the .dSYM bundle. The default dSYM bundle path is created by appending '.dSYM' to the exe- cutable name. --oso-prepend-path=path Specifies a path to prepend to all debug symbol object file paths. -s, --symtab Dumps the symbol table found in executable or object file(s) and exits. -t n, --threads=n Specifies the maximum number (n) of simultaneous threads to use when linking multiple architectures. -v, --version Display the current version and build date of the dsymutil binary. --verbose Display verbose information when linking. SEE ALSO
dwarfdump(1) Darwin June 2, 2019 Darwin

Check Out this Related Man Page

atos(1) 						    BSD General Commands Manual 						   atos(1)

atos -- convert numeric addresses to symbols of binary images or processes SYNOPSIS
atos [-o <binary-image-file>] [-p <pid> | <partial-executable-name>] [-arch architecture] [-l <load-address>] [-s <slide>] [-printHeader] [-fullPath] [-f <address-input-file>] [<address> ...] DESCRIPTION
The atos command converts numeric addresses to their symbolic equivalents. If full debug symbol information is available, for example in a .app.dSYM sitting beside a .app, then the output of atos will include file name and source line number information. The input addresses may be given in one of three ways: 1. A list of addresses at the end of the argument list. 2. Using the -f <address-input-file> argument to specify the path of an input file containing whitespace-separated numeric addresses. 3. If no addresses were directly specified, atos enters an interactive mode, reading addresses from stdin. The symbols are found in either a binary image file or in a currently executing process, as specified by: -o <binary-image-file> The path to a binary image file in which to look up symbols. -p <pid> | <partial-executable-name> The process ID or the partial name of a currently executing process in which to look up symbols. Multiple process IDs or paths can be specified if necessary, and the two can be mixed in any order. When working with a Mach-O binary image file, atos considers only addresses and symbols defined in that binary image file, at their default locations (unless the -l or -s option is given). When working with a running process, atos considers addresses and symbols defined in all binary images currently loaded by that process, at their loaded locations. The following additional options are available. -arch architecture The particular architecure of a binary image file in which to look up symbols. -l <load-address> The load address of the binary image. This value is always assumed to be in hex, even without a "0x" prefix. The input addresses are assumed to be in a binary image with that load address. Load addresses for binary images can be found in the Binary Images: sec- tion at the bottom of crash, sample, leaks, and malloc_history reports. -s <slide> The slide value of the binary image -- this is the difference between the load address of a binary image, and the address at which the binary image was built. This slide value is subtracted from the input addresses. It is usually easier to directly specify the load address with the -l argument than to manually calculate a slide value. -printHeader If a process was specified, the first line of atos output should be a header of the form "Looking up symbols in process <pid> named: <process-name>". This is primarily used when atos is invoked as part of a stackshot(1) run, for verification of the process ID and name. -fullPath Print the full path of the source files. EXAMPLE
A stripped, optimized version of Sketch was built as an x86_64 position-independent executable (PIE) into /BuildProducts/Release. Full debug symbol information is available in, which sits alongside When was run, the Sketch binary (which was built at 0x100000000) was loaded at 0x10acde000. Running 'sample Sketch' showed 3 addresses that we want to get symbol information for -- 0x10acea1d3, 0x10ace4bea, and 0x10ace4b7a. First notice that the .dSYM is next to the .app: % ls -1 /BuildProducts/Release/ Now, to symbolicate, we run atos with the -o flag specifying the path to the actual Sketch executable (not the .app wrapper), the -arch x86_64 flag, and the -l 0x10acde000 flag to specify the load address. % atos -o /BuildProducts/Release/ -arch x86_64 -l 0x10acde000 0x10acea1d3 0x10ace4bea 0x10ace4b7a -[SKTGraphicView drawRect:] (in Sketch) (SKTGraphicView.m:445) -[SKTGraphic drawHandlesInView:] (in Sketch) (NSGeometry.h:110) -[SKTGraphic drawHandleInView:atPoint:] (in Sketch) (SKTGraphic.m:490) GETTING SYMBOLS FOR A DIFFERENT MACHINE ARCHITECTURE
It is possible to get symbols for addresses from a different machine architecture than the system on which atos is running. For example, when running atos on an Intel-based system, one may wish to get the symbol for an address that came from a backtrace of a process running on an ARM device. To do so, use the -arch flag to specify the desired architecture (such as i386 or arm) and pass in a corresponding symbol- rich Mach-O binary image file with a binary image of the corresponding architecture (such as a Universal Binary). BSD
May 9, 2017 BSD
Man Page