-
Symbolication: Beyond the basics
Discover how you can achieve maximum performance and insightful debugging with your app. Symbolication is at the center of tools such as Instruments and LLDB to help bridge the layers between your application's runtime and your source code. Learn how this process works and the steps you can take to gain the most insight into your app.
Recursos
Videos relacionados
WWDC22
-
Buscar este video…
-
-
1:11 - MagicNumbers
func selectMagicNumber(choices: [Int]) -> Int { return choices[MAGIC_CHOICE] } func randomValue() -> Int { return Int.random(in: 1...100) } func numberChoices() -> [Int] { var choices = [Int]() for _ in 1...10 { choices.append(randomValue()) } return choices } func generateMagicNumber() -> Int { let numbers = numberChoices() let magic = selectMagicNumber(choices: numbers) return magic } print("The magic number is: \(generateMagicNumber())") -
2:51 - atos symbolication
atos -o MagicNumbers.dSYM/Contents/Resources/DWARF/MagicNumbers -arch arm64 -l 0x10045c000 -i 0x10045fb70 -
7:34 - Load commands
otool -l MagicNumbers | grep LC_SEGMENT -A8 -
10:31 - Disassembly
otool -tV MagicNumbers -arch arm64 -
11:32 - vmmap
vmmap MagicNumbers | grep __TEXT -
15:09 - Function starts
symbols -onlyFuncStartsData -arch arm64 MagicNumbers -
17:06 - nlist_64
struct nlist_64 { union { uint32_t n_strx; } n_un; uint8_t n_type; uint8_t n_sect; uint16_t n_desc; uint64_t n_value; }; -
17:59 - Direct symbols with nm
nm -arch arm64 —defined-only --numeric-sort MagicNumbers -
18:30 - Demangled direct symbols with nm
nm -arch arm64 —defined-only --numeric-sort MagicNumbers | xcrun swift-demangle -
18:43 - Demangled direct symbols with the symbols tool
symbols -arch arm64 -onlyNListData MagicNumbers -
23:06 - Indirect symbols with nm
nm -m —arch arm64 --undefined-only --numeric-sort MagicNumbers -
27:16 - Examining dSYMs with dwarfdump
dwarfdump -v -debug-info -arch arm64 MagicNumbers.dSYM -
29:25 - atos symbolication without inlined functions
atos -o MagicNumbers.dSYM/Contents/Resources/DWARF/MagicNumbers -arch arm64 —l 0x10045c000 0x10045fb70 -
32:29 - Examining debugging symbols
dsymutil --dump-debug-map -arch arm64 MagicNumbers -
33:59 - Examining dSYM UUIDs
symbols -uuid MagicNumbers.dSYM -
34:03 - Verifying DWARF
dwarfdump —verify MagicNumbers.dSYM -
35:09 - Verifying entitlements and codesigning
codesign --display -v --entitlements :- MagicApp.app
-