I am trying to analyse a crash log that a customer sent me, but I cannot get it to symbolicate the system library calls. It does symbolicate calls to my own methods correctly. That does not make it very practical to analyse what goes wrong.
I have run 'symbolicatecrash -v', to see what is causing the lack of symbolication. The likely cause is this:
## /Users/baraupp/Library/Developer/Xcode/iOS DeviceSupport/6.1.3 (10B329)/Symbols/usr/lib/system/libsystem_kernel.dylib doesn't contain armv7s slice
I have checked the mentioned libraries with 'lipo', which says that they contain 'armv7' but no 'armv7s'. After searching the web, it came out that this is a difference between iPhone 4 and iPhone 5. The normal solution seems to be to plug-in an iPhone 5 device and download the libraries from there. But I don't have an iPhone 5.
Anybody knows how to solve this?
To give you an idea how the symbolication looks like:
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x3bab0350 0x3ba9f000 + 70480
1 libsystem_c.dylib 0x3ba26fb2 0x3b9f8000 + 192434
2 libsystem_c.dylib 0x3ba63366 0x3b9f8000 + 439142
3 libc++abi.dylib 0x3b00bdda 0x3b008000 + 15834
4 libc++abi.dylib 0x3b009094 0x3b008000 + 4244
5 libobjc.A.dylib 0x3b5bca58 0x3b5b4000 + 35416
6 libc++abi.dylib 0x3b009118 0x3b008000 + 4376
7 libc++abi.dylib 0x3b0091b0 0x3b008000 + 4528
8 libc++abi.dylib 0x3b00a626 0x3b008000 + 9766
9 libobjc.A.dylib 0x3b5bc9b0 0x3b5b4000 + 35248
10 CoreFoundation 0x3380829c 0x337ff000 + 37532
11 CoreFoundation 0x338080c4 0x337ff000 + 37060
12 GraphicsServices 0x373e7336 0x373e2000 + 21302
13 UIKit 0x357242b4 0x356cd000 + 357044
14 Flyskyhy 0x000f8a66 main (main.m:17)
15 Flyskyhy 0x000f8a1c 0xf6000 + 10780
There are only two ways to solve this:
You either need an iPhone 5 device with iOS 6.1.3 to plug into your computer so Xcode can import the symbols
Or you need to get the symbols from another developer and replace yours with them.
Usually the symbols are part of the latest Xcode release, but Apple doesn't always provide Xcode updates when an iOS version only contains bug-fixes but no API changes.
I ran into this issue as well with an iOS7 app using XCode5, even though I had all the correct symbols.
What I found was that I had taken my dSYM file out of the archive where spotlight could index it, but the crashlog was only getting partically symbolicated (as seen in the question). But I had left the actual .app file in an xcarchive, and it was not able to be indexed by spotlight. As soon as I copied that file out of the archive to the visible location, I was able to symbolicate properly.
In following answer of Kerni:
You can install related Xcode with your target version of iOS and copy ~/Library/Developer/Xcode/iOS DeviceSupport/
Related
I am trying to symbolicate an iOS crash report. I am missing dSYMs for UIKitCore and other native libs.
The app is built with NativeScript. I have successfully symbolicated frames of my app and NativeScript framework. However I can't seem to find a way to symbolicate frames of libs like UIKitCore, they are still showing up as addresses. I have also tried searching for them using mdfind as per Apple documentation - they are not present on my Mac. I have also tried looking for these dSYMs online without luck.
Here is an excerpt of my crash log:
Last Exception Backtrace:
0 CoreFoundation 0x1cb5d927c 0x1cb4c1000 + 1147516
1 libobjc.A.dylib 0x1ca7b39f8 0x1ca7ae000 + 23032
2 NativeScript 0x10420fca0 NativeScript::reportFatalErrorBeforeShutdown(JSC::ExecState*, JSC::Exception*, bool) + 277664 (JSErrors.mm:189)
3 NativeScript 0x104223354 NativeScript::FFICallback<NativeScript::ObjCBlockCallback>::ffiClosureCallback(ffi_cif*, void*, void**, void*) + 357204 (FFICallbackInlines.h:33)
4 NativeScript 0x104cb9894 ffi_closure_SYSV_inner + 11458708 (ffi.c:1218)
5 NativeScript 0x104cbc1b4 .Ldo_closure + 19
6 libdispatch.dylib 0x1cb018a38 0x1cafb9000 + 391736
7 libdispatch.dylib 0x1cb0197d4 0x1cafb9000 + 395220
8 libdispatch.dylib 0x1caff99e4 0x1cafb9000 + 264676
9 CoreFoundation 0x1cb56ac1c 0x1cb4c1000 + 695324
10 CoreFoundation 0x1cb565b54 0x1cb4c1000 + 674644
11 CoreFoundation 0x1cb5650b0 0x1cb4c1000 + 671920
12 GraphicsServices 0x1cd76579c 0x1cd75b000 + 42908
13 UIKitCore 0x1f7edf978 0x1f7623000 + 9161080
14 NativeScript 0x104cbc044 ffi_call_SYSV + 67
15 NativeScript 0x104cb8fb4 ffi_call_int + 11456436 (ffi.c:758)
16 NativeScript 0x104cb8ab0 ffi_call + 11455152 (ffi.c:767)
17 NativeScript 0x1041d4f90 NativeScript::FunctionWrapper::call(JSC::ExecState*) + 36752 (FunctionWrapper.mm:97)
18 NativeScript 0x104cb7b58 llint_entry + 32567
Many articles I found had examples with UIKitCore symbolicated so I assume this has to do with my configuration.
Part 1: Install the symbols
Check the full iOS version in the crash report. It should look like "iPhone OS 13.3 (17C54)"
There are a lot of repositories with iOS symbols or links to them. Like this one: https://github.com/Zuikyo/iOS-System-Symbols/blob/master/collected-symbol-files.md
Find and download symbols you need.
Unpack them to ~/Library/Developer/Xcode/iOS\ DeviceSupport
Add info.plist into the root folder if it missed (just copy from the other symbols and change its version value)
Part 2. Use the force of Xcode
Connect ANY real device, open Xcode, open the "Devices and Simulators" window, click the "View device logs" and then go to tab "All logs".
Drag and drop the crash into the table. Find it.
If the system symbols are not desymbolicated – do right-click on the crash and select "Re-symbolicate crash".
Repeat Step 3 multiple times (2-3 usually enough) – it needs time to resymbolicate it, but it looks like xcode does not update the crashlog automatically
And yes, UIKitCore is a system framework
UIKitCore is NOT an apple framework.
I have uploaded app on iTunes and iTunes rejected app continuously and provided crashlog. I have found issue like "-[AFNetworkReachabilityManager .cxx_destruct]".
Actually i have add AFNetworking using pods and i have also check latest version and it is there.
If any one have any idea about this problem then let me know.
Thanks in Advance.
I have attached all crash log
0 libsystem_kernel.dylib 0x0000000186ec3014 0x186ea4000 + 126996
1 libsystem_pthread.dylib 0x0000000186f8b450 0x186f86000 + 21584
2 libsystem_c.dylib 0x0000000186e3749c 0x186dd4000 + 406684
3 libsystem_c.dylib 0x0000000186e3740c 0x186dd4000 + 406540
4 libc++abi.dylib 0x00000001869012d4 0x186900000 + 4820
5 libc++abi.dylib 0x000000018691ecc0 0x186900000 + 126144
6 libobjc.A.dylib 0x000000018692c844 0x186924000 + 34884
7 AppName 0x000000010050294c 0x1000c4000 + 4450636
8 libc++abi.dylib 0x000000018691b66c 0x186900000 + 112236
9 libc++abi.dylib 0x000000018691b234 0x186900000 + 111156
10 libobjc.A.dylib 0x000000018692c71c 0x186924000 + 34588
11 CoreFoundation 0x0000000187dce32c 0x187dc5000 + 37676
12 UIKit 0x000000018de0e7b0 0x18dd94000 + 501680
13 UIKit 0x000000018de09534 0x18dd94000 + 480564
14 APPName 0x00000001001699b4 0x1000c4000 + 678324
15 libdyld.dylib 0x0000000186db15b8 0x186dad000 + 17848
and iTunes provided me simple below message.
For information on how to symbolicate and read a crash log, please see Tech Note TN2151 Understanding and Analyzing Application Crash Reports.
For additional information about supporting IPv6 Networks, please refer to Supporting IPv6 DNS64/NAT64 Networks and Supporting IPv6-only Networks.
For a networking overview, please see About Networking.
If you have any questions about the information provided, please reply to this message and we will get back to you as soon as we can.
Best regards,
App Store Review
It may case that your application network is not support IPV6 network. So apple will reject your application.
Check below points into your application:
1) Make sure you API link which you used in your application, doesn't have any ip address. If you calling API using IPAddress then your application will rejected.
2) Do testing your application using IPV6 network thorugh your system. Here is the link.
I'm searching for 5 days ago about this crash, but I can find why my app crash sometimes.
I'm using the Crittercism library to log my crash. The dSYM file is correctly uploaded on the Crittercism website. Here the crash log from Crittercism:
0 libobjc.A.dylib 0x38540626 objc_msgSend + 6
1 UIKit 0x307baaf7 -[_UIModalItemsCoordinator _notifyDelegateModalItem:tappedButtonAtIndex:] + 95
2 UIKit 0x307ba96d -[_UIModalItemAlertContentView tableView:didSelectRowAtIndexPath:] + 749
3 UIKit 0x306c205f -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 1079
4 UIKit 0x30774377 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 215
5 UIKit 0x306236f5 _applyBlockToCFArrayCopiedToStack + 317
6 UIKit 0x3059c55b _afterCACommitHandler + 431
7 CoreFoundation 0x2dd532a5 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 21
8 CoreFoundation 0x2dd50c49 __CFRunLoopDoObservers + 285
9 CoreFoundation 0x2dd50f8b __CFRunLoopRun + 731
10 CoreFoundation 0x2dcbbf0f CFRunLoopRunSpecific + 523
11 CoreFoundation 0x2dcbbcf3 CFRunLoopRunInMode + 107
12 GraphicsServices 0x32bc0663 GSEventRunModal + 139
13 UIKit 0x3060716d UIApplicationMain + 1137
14 myApp 0x000c3357 main (main.m:16)
15 libdyld.dylib 0x38a43ab7 start + 3
The thing is: I have many UITableView in my app. But I can't find which one it is.
How do I have to process to debug this crash ? I didn't find some useful information on Apple Developer Center. I try to use the atos command to symbolicate the file, but no useful information. It's exactly the same info than on the Crittercism website.
Here the command I used: atos -arch armv7 -o myApp (to enter interactif mode, then, enter each memory address like : 0x307baaf7)
I have only the myApp.app.dSYM archive, and to use this command (above), I used the file the archive at path: Contents/Resources/DWARF/myApp
I'm really lost. Any idea ? Suggestions ? Thank you so much for your help.
EDIT 1:
I've checked all my UIAletView and delegate of UIAlertView: all is ok.
I see the crash log on Crittercism, (around 120 crashes for 63 users on iOS 7 only, iPhone and iPad).
I can't reproduced it ! I really don't understand.
Frame 14 already shows the correct symbol, which is main.m line 16. Using atos with the address as written in the stackframe like you did is wrong, see this stackoverflow explanation. As such it is not possible for a crash report to tell you which table view is causing such a memory issue.
Based upon the above you may not be able to get the exact table view from the stack trace itself, but with Crittercism there are additional features (such as Breadcrumbs) that allow for capturing a trail beyond just the stack.
My recommendation is to add a breadcrumb in the viewDidLoad of the TableViewController and grab/define the name of the table view there. That way you can step through the breadcrumbs and know that leading up to the crash you were in this tableview.
That should help you for better capturing this scenario in the future.
As for this particular stack trace. You can potentially use the techniques described in this post to help you better understand the true origins of the objc_msgSend.
* See the Kerni's response below in the comments *
I am trying to analyse a crash log that a customer sent me, but I cannot get it to symbolicate the system library calls. It does symbolicate calls to my own methods correctly. That does not make it very practical to analyse what goes wrong.
I have run 'symbolicatecrash -v', to see what is causing the lack of symbolication. The likely cause is this:
## /Users/baraupp/Library/Developer/Xcode/iOS DeviceSupport/6.1.3 (10B329)/Symbols/usr/lib/system/libsystem_kernel.dylib doesn't contain armv7s slice
I have checked the mentioned libraries with 'lipo', which says that they contain 'armv7' but no 'armv7s'. After searching the web, it came out that this is a difference between iPhone 4 and iPhone 5. The normal solution seems to be to plug-in an iPhone 5 device and download the libraries from there. But I don't have an iPhone 5.
Anybody knows how to solve this?
To give you an idea how the symbolication looks like:
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x3bab0350 0x3ba9f000 + 70480
1 libsystem_c.dylib 0x3ba26fb2 0x3b9f8000 + 192434
2 libsystem_c.dylib 0x3ba63366 0x3b9f8000 + 439142
3 libc++abi.dylib 0x3b00bdda 0x3b008000 + 15834
4 libc++abi.dylib 0x3b009094 0x3b008000 + 4244
5 libobjc.A.dylib 0x3b5bca58 0x3b5b4000 + 35416
6 libc++abi.dylib 0x3b009118 0x3b008000 + 4376
7 libc++abi.dylib 0x3b0091b0 0x3b008000 + 4528
8 libc++abi.dylib 0x3b00a626 0x3b008000 + 9766
9 libobjc.A.dylib 0x3b5bc9b0 0x3b5b4000 + 35248
10 CoreFoundation 0x3380829c 0x337ff000 + 37532
11 CoreFoundation 0x338080c4 0x337ff000 + 37060
12 GraphicsServices 0x373e7336 0x373e2000 + 21302
13 UIKit 0x357242b4 0x356cd000 + 357044
14 Flyskyhy 0x000f8a66 main (main.m:17)
15 Flyskyhy 0x000f8a1c 0xf6000 + 10780
There are only two ways to solve this:
You either need an iPhone 5 device with iOS 6.1.3 to plug into your computer so Xcode can import the symbols
Or you need to get the symbols from another developer and replace yours with them.
Usually the symbols are part of the latest Xcode release, but Apple doesn't always provide Xcode updates when an iOS version only contains bug-fixes but no API changes.
I ran into this issue as well with an iOS7 app using XCode5, even though I had all the correct symbols.
What I found was that I had taken my dSYM file out of the archive where spotlight could index it, but the crashlog was only getting partically symbolicated (as seen in the question). But I had left the actual .app file in an xcarchive, and it was not able to be indexed by spotlight. As soon as I copied that file out of the archive to the visible location, I was able to symbolicate properly.
In following answer of Kerni:
You can install related Xcode with your target version of iOS and copy ~/Library/Developer/Xcode/iOS DeviceSupport/
In monodevelop try menu > project > profile mono..., before try it, every works fine , but now is imposible for me debug in iphone debug simulator. always same error
In release simulator work fine
In iphone real device work fine
In debug simulator the error:
I think disabled profile mono..., but is not posible, i dont know reason, Thanks.
Native stacktrace:
0 myprogram 0x0009524c mono_handle_native_sigsegv + 284
1 myprogram 0x0000bb38 mono_sigsegv_signal_handler + 248
2 libsystem_c.dylib 0x9ae6059b _sigtramp + 43
3 ??? 0xffffffff 0x0 + 4294967295
4 myprogram 0x001a4a62 single_arg_user_copy_or_mark + 34
5 myprogram 0x001ce400 mark_tls_slots + 128
6 myprogram 0x001a81b0 scan_from_registered_roots + 336
7 myprogram 0x001b4356 major_collection + 2886
8 myprogram 0x001b5098 mono_gc_collect + 88
9 myprogram 0x002233a6 monotouch_pump_gc + 38
10 libsystem_c.dylib 0x9ae08ed9 _pthread_start + 335
11 libsystem_c.dylib 0x9ae0c6de thread_start + 34
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
In order to use MonoDevelop's profiler you had to enable the SGEN garbage collector (GC). This is (from the stack trace) what's causing your crash.
You need to go back to your project's options (MonoTouch Build) and, under the Advanced tab, unselect the "Use SGEN generational garbage collector".
Once you have changed this, re-build your solution and it should work fine (the reason it works for release build is because the GC settings, like most of them, are kept separate between Debug and Release builds).
Now there's likely something broken because it should not be crashing like this. Would it be possible for you to report this issue (with a test case) to http://bugzilla.xamarin.com so our GC developers can get a look at what caused this issue ? Thanks!