का प्रतीक नहीं है समस्या यह है कि जब पीएलक्रैश रिपोर्टर द्वारा रिपोर्ट किए गए स्टैकट्रस पते का प्रतीक होता है तो वास्तविक प्रणाली ढांचे/पुस्तकालयों को प्रतीकात्मक रेखा वापस नहीं आती है। मेरी एप्लिकेशन लाइन यद्यपि सही अपमानजनक रेखा को दर्शाती है।एटोस सिस्टम फ्रेमवर्क/पुस्तकालयों को ठीक से
कुछ विन्यास। मेरे ओएसएक्स 10.9.5 पर मैंने एक्सकोड 5.1.1 और एक्सकोड 6.0.1 स्थापित किया है।
एक्सकोड 5.1.1 के साथ काम करते समय और डिवाइस लॉग की जांच करते समय मैं क्रैश देख सकता हूं हालांकि क्रैश रिपोर्ट में कोई प्रतीक नहीं हो सकता है।
एक्सकोड 6.0.1 का उपयोग करके मेरे ऐप को दुर्घटनाग्रस्त कर रहा है और डिवाइस लॉग की जांच कर रहा हूं, मैं रिपोर्ट को ठीक से चिह्नित कर सकता हूं।
किसी भी मामले में एटोस सही ऐप्पल सिस्टम ढांचे/पुस्तकालयों को प्रतीकात्मक रेखा वापस नहीं लौटाता है। यह सिर्फ कचरे, कक्षाओं को वापस लौटाता है जिनके पास इसी ढांचे/पुस्तकालय से कोई लेना देना नहीं है। उदाहरण के लिए नीचे देखें।
विस्तार से मैं अपने क्रैश स्टैकट्रैक का प्रतीक करने के लिए क्या करता हूं जो मुझे पीएलक्रैश रिपोर्टर का उपयोग करके और डिवाइस लॉग प्रतीकात्मक रिपोर्ट की तुलना में रिपोर्ट करता है।
0 libsystem_platform.dylib 0x000000019726ce5c 0x197268000 + 20060
1 libsystem_c.dylib 0x00000001971253e0 0x197124000 + 5088
2 MyNewPlugin 0x000000010003ac70 0x10002c000 + 60528
3 UIKit 0x000000018d5f90b0 0x18d5b0000 + 299184
4 UIKit 0x000000018d5f9044 0x18d5b0000 + 299076
5 UIKit 0x000000018d5e2520 0x18d5b0000 + 206112
6 UIKit 0x000000018d5f8a44 0x18d5b0000 + 297540
7 UIKit 0x000000018d5f86d8 0x18d5b0000 + 296664
8 UIKit 0x000000018d5f3370 0x18d5b0000 + 275312
9 UIKit 0x000000018d5c4b50 0x18d5b0000 + 84816
10 UIKit 0x000000018d5c2c40 0x18d5b0000 + 76864
11 CoreFoundation 0x000000018a5bb7f4 0x18a4f0000 + 833524
12 CoreFoundation 0x000000018a5bab50 0x18a4f0000 + 830288
13 CoreFoundation 0x000000018a5b8de8 0x18a4f0000 + 822760
14 CoreFoundation 0x000000018a4f9dd0 0x18a4f0000 + 40400
15 GraphicsServices 0x00000001901e1c0c 0x1901d4000 + 56332
16 UIKit 0x000000018d62afc4 0x18d5b0000 + 503748
17 MyNewPlugin 0x0000000100041944 0x10002c000 + 88388
18 libdyld.dylib 0x00000001970f7aa0 0x1970f4000 + 15008
यहाँ स्टैकट्रेस से ऊपर है PLCrashReported से उपयोग करते हुए "xcrun रफ" symbolicated:
0 libsystem_platform.dylib _mh_execute_header (in MyNewPlugin) + 20060
1 libsystem_c.dylib _mh_execute_header (in MyNewPlugin) + 5088
2 MyNewPlugin -[SLKViewController causeBadAddress:] (in MyNewPlugin) (SLKViewController.m:175) + 60528
3 UIKit __30-[RequestWorker logEvent:]_block_invoke (in MyNewPlugin) + 232
4 UIKit __30-[RequestWorker logEvent:]_block_invoke (in MyNewPlugin) + 124
5 UIKit +[SSNetworkInfo cellMACAddress] (in MyNewPlugin) (SSNetworkInfo.m:0)
6 UIKit __copy_helper_block_234 (in MyNewPlugin) + 100
7 UIKit -[RequestWorker logEventAsyncWithName:logLevel:andCompletionBlock:] (in MyNewPlugin) + 992
8 UIKit -[ErrorResponse setData:] (in MyNewPlugin) + 56
9 UIKit +[SSProcessInfo processStatus] (in MyNewPlugin) (SSProcessInfo.m:97)
10 UIKit +[JSONModel(Networking) postModel:toURLWithString:completion:] (in MyNewPlugin) (JSONModel+networking.m:107)
11 CoreFoundation __55+[SPLJSONKeyMapper mapperFromUnderscoreCaseToCamelCase]_block_invoke_2 (in MyNewPlugin) + 1132
12 CoreFoundation __destroy_helper_block_17 (in MyNewPlugin) + 44
13 CoreFoundation -[RequestWorker sendUnhandledRequestAsync:andResultBlock:] (in MyNewPlugin) + 240
14 CoreFoundation +[SSApplicationInfo clipboardContent] (in MyNewPlugin) (SSApplicationInfo.m:49)
15 GraphicsServices __47-[SLKViewController logExceptionSynchronously:]_block_invoke (in MyNewPlugin) (SLKViewController.m:92) + 56332
16 UIKit -[DeviceInfo appendInfo] (in MyNewPlugin) + 1192
17 MyNewPlugin main (in MyNewPlugin) (main.m:16) + 88388
18 libdyld.dylib _mh_execute_header (in MyNewPlugin) + 15008
यहाँ ऊपर ही की स्टैकट्रेस है
यहाँ स्टैकट्रेस PLCrashReporter unsymbolicated का उपयोग कर सूचना दी है डिवाइस लॉग से सटीक क्रैश प्रतीकात्मक:
0 libsystem_platform.dylib 0x000000019726ce5c _platform_memmove + 188
1 libsystem_c.dylib 0x00000001971253dc strcpy + 40
2 MyNewPlugin 0x000000010003ac6c -[SLKViewController causeBadAddress:] (SLKViewController.m:174)
3 UIKit 0x000000018d5f90ac -[UIApplication sendAction:to:from:forEvent:] + 96
4 UIKit 0x000000018d5f9040 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 20
5 UIKit 0x000000018d5e251c -[UIControl _sendActionsForEvents:withEvent:] + 372
6 UIKit 0x000000018d5f8a40 -[UIControl touchesEnded:withEvent:] + 580
7 UIKit 0x000000018d5f86d4 -[UIWindow _sendTouchesForEvent:] + 688
8 UIKit 0x000000018d5f336c -[UIWindow sendEvent:] + 1168
9 UIKit 0x000000018d5c4b4c -[UIApplication sendEvent:] + 252
10 UIKit 0x000000018d5c2c3c _UIApplicationHandleEventQueue + 8496
11 CoreFoundation 0x000000018a5bb7f0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 20
12 CoreFoundation 0x000000018a5bab4c __CFRunLoopDoSources0 + 252
13 CoreFoundation 0x000000018a5b8de4 __CFRunLoopRun + 628
14 CoreFoundation 0x000000018a4f9dcc CFRunLoopRunSpecific + 448
15 GraphicsServices 0x00000001901e1c08 GSEventRunModal + 164
16 UIKit 0x000000018d62afc0 UIApplicationMain + 1152
17 MyNewPlugin 0x0000000100041940 main (main.m:16)
18 libdyld.dylib 0x00000001970f7a9c start + 0
आप दो प्रतीकात्मक स्टैकट्रैस देख सकते हैं, पहले पीएलक्रैश रिपोर्टर स्टैकट्रैस से और एक्सकोड डिवाइस लॉग से दूसरा। मैं इस बिंदु पर यह कहूंगा कि मुझे विश्वास नहीं है कि यह उन पतों में है जिनके पास समस्या है लेकिन एटोस के साथ कुछ और चल रहा है। क्या ऐप्पल रिपोर्ट का प्रतीक करने के लिए प्रतीकात्मक क्रैश टूल का उपयोग कर एक्सकोड है?
एटोस कमांड: xcrun atos -arch arm64 -o MyNewPlugin.app.dSYM/Contents/Resources/DWARF/MyNewPlugin -l 0x197268000 0x000000019726ce5c
परिणाम _mh_execute_header (in MyNewPlugin) + 20060
होगा जो पूरी तरह से गलत है और इसे डिवाइस लॉग रिपोर्ट _platform_memmove + 188
जैसे कुछ वापस करना चाहिए।
एक और रफ उदाहरण लाइन 3. xcrun atos -arch arm64 -o MyNewPlugin.app.dSYM/Contents/Resources/DWARF/MyNewPlugin -l 0x18d5b0000 0x000000018d5f90b0
के लिए समस्या साबित करने के लिए, लौटना चाहिए, UIKit 0x000000018d5f90ac -[UIApplication sendAction:to:from:forEvent:] + 96
, बजाय देता है, UIKit __30-[RequestWorker logEvent:]_block_invoke (in MyNewPlugin) + 232
जो UIKit के साथ कोई संबंध नहीं है, यह एक आंतरिक वर्ग मैं का उपयोग करें।
इस प्रकार मैं PLCrashReporter का उपयोग करके स्टैकट्रैक की रेखाएं बना सकता हूं।
[NSString stringWithFormat:@"%-4ld%@ 0x0000000%" PRIx64 " 0x%" PRIx64 " + %" PRId64 "", (long)frameIndex, imageName, frameInfo.instructionPointer, baseAddress, pcOffset];
संपादित करें: unsymbolicated सेब क्रैश रिपोर्ट के लिए टर्मिनल में symbolicatecrash का उपयोग करते हुए सभी सिस्टम विधानसभाओं नहीं बल्कि आवेदन लाइनों symbolicating है !!!
क्या आपने कभी अपनी समस्या हल की है? – Locksleyu
नहीं, दुर्भाग्यवश मेरे पास नहीं है, एटोस सिर्फ बेकार है या मुझे उपयोग के बारे में जानकारी याद आती है जहां मुझे कहीं भी नहीं मिल रहा है! –