我從我的Mac App Store應用程序中獲取堆棧跟蹤信息,我想閱讀該信息以幫助診斷用戶遇到的問題。我有dSYM文件和原始的存檔版本,但是我沒有完整的崩潰報告。我想知道的是堆棧跟蹤中方法的名稱(您可以在下面看到其中的兩個爲MyAppName)。我一直無法獲得lldb
或atos
給我這個信息。這是堆棧跟蹤的樣子:從Mac應用程序的調用堆棧獲取符號名稱
0 CoreFoundation 0x00007fff92fdd25c __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00007fff918dbe75 objc_exception_throw + 43
2 CoreFoundation 0x00007fff92ebb4f5 -[__NSArrayM objectAtIndex:] + 245
3 MyAppName 0x0000000108e91c6b MyAppName + 126059
4 MyAppName 0x0000000108e7556f MyAppName + 9583
5 AppKit 0x00007fff8d883099 -[NSToolbarButton sendAction:to:] + 75
6 AppKit 0x00007fff8d8830e8 -[NSToolbarButton sendAction] + 65
7 AppKit 0x00007fff8d436f0c -[NSToolbarItemViewer mouseDown:] + 4897
8 AppKit 0x00007fff8d352a58 -[NSWindow sendEvent:] + 11296
9 AppKit 0x00007fff8d2f15d4 -[NSApplication sendEvent:] + 2021
10 AppKit 0x00007fff8d1419f9 -[NSApplication run] + 646
11 AppKit 0x00007fff8d12c783 NSApplicationMain + 940
12 libdyld.dylib 0x00007fff87df35fd start + 1
13 ??? 0x0000000000000001 0x0 + 1
要得到一個符號(比如說上面的級別3),我可以使用什麼命令?當我打電話lldb
,它甚至不是清楚,如果我應該使用十六進制地址或偏移,如果是這樣的126059是3級
更新
按照atos
documentation什麼,它看起來像我應該這樣調用它:
xcrun atos -arch x86_64 -o MyAppName.app/Contents/MacOS/MyAppName -l <LOADED ADDRESS> 0x0000000108e91c6b
但是,我會用什麼作爲加載的地址?我所擁有的就是我上面粘貼的內容。無論我使用0x0000000000000001
,0x00007fff87df35fd
還是完全忽略-l
,我都會得到0x0000000108e91c6b
(我指定的地址)打印回標準輸出。