8
我有一個控制檯堆棧(不是崩潰報告)從用戶,我試圖確定哪個方法調用在我的應用程序是最後一個人站。使用atos來確定崩潰的方法名稱與dSYM
我知道他們使用的是哪個版本的應用程序,並且我有該版本/調試版本的副本,以及存檔副本的dSYM文件。
但是,當我嘗試使用atos
吐出內存地址時,它似乎沒有幫助。 (我使用0x000000010e703bc0
從下面的堆棧。)
craig-mbp:Desktop Craig$ atos -o MyApp.app_1.0.0.dSYM/Contents/Resources/DWARF/MyApp -arch x86_64
0x000000010e703bc0 (<- entered by me)
0x000000010e703bc0 (<- console output)
我需要輸入某種偏差?或者根據用戶提供給我的地址來確定程序內存塊內的實際位置?
這是我收到的堆棧跟蹤的總和:
28/11/12 10:48:56.220 AM MyApp[411] (
0 CoreFoundation 0x00007fff8fee90a6 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff8e94a3f0 objc_exception_throw + 43
2 CoreFoundation 0x00007fff8fee8e7c +[NSException raise:format:] + 204
3 Foundation 0x00007fff92b1ce5c -[NSPlaceholderString initWithString:] + 93
4 Foundation 0x00007fff92b1cde4 +[NSString stringWithString:] + 43
5 MyApp 0x000000010e703bc0 MyApp + 23488
6 MyApp 0x000000010e70a038 MyApp + 49208
7 MyApp 0x000000010e70b41a MyApp + 54298
8 MyApp 0x000000010e70bb92 MyApp + 56210
9 Foundation 0x00007fff92b22db5 __NSFireDelayedPerform + 358
10 CoreFoundation 0x00007fff8fea5da4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
11 CoreFoundation 0x00007fff8fea58bd __CFRunLoopDoTimer + 557
12 CoreFoundation 0x00007fff8fe8b099 __CFRunLoopRun + 1513
13 CoreFoundation 0x00007fff8fe8a6b2 CFRunLoopRunSpecific + 290
14 HIToolbox 0x00007fff8b31c0a4 RunCurrentEventLoopInMode + 209
15 HIToolbox 0x00007fff8b31be42 ReceiveNextEventCommon + 356
16 HIToolbox 0x00007fff8b31bcd3 BlockUntilNextEventMatchingListInMode + 62
17 AppKit 0x00007fff948e7613 _DPSNextEvent + 685
18 AppKit 0x00007fff948e6ed2 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
19 AppKit 0x00007fff948de283 -[NSApplication run] + 517
20 AppKit 0x00007fff94882cb6 NSApplicationMain + 869
21 MyApp 0x000000010e6ffab4 MyApp + 6836
這很完美 - 我需要的只是將'6836'轉換爲Base10並從內存地址中減去它。 (然後將該幻燈片值傳遞給'atos'。)我現在有一個完全符號化的堆棧跟蹤,非常感謝。 –