"Selector name found in current argument registers:", What does it mean? - ios

I am monitoring my App using HockeyApp, I can see the following CrashGroups in my HockeyApp Panel.
Crash Group:
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR at 0x20
Crashed Thread: 0
main "Selector name found in current argument registers: release"
Thread 0 Crashed:
0 libobjc.A.dylib 0x0000000182d9c160 objc_release + 16
1 libobjc.A.dylib 0x0000000182d9dae8 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 504
2 CoreFoundation 0x00000001835fc9fc _CFAutoreleasePoolPop + 24
3 Foundation 0x00000001840141c0 -[NSAutoreleasePool drain] + 148
4 CoreData 0x000000018561c8d0 -[NSManagedObjectContext _mergeChangesFromDidSaveDictionary:usingObjectIDs:] + 3000
5 CoreData 0x000000018561cc20 -[NSManagedObjectContext mergeChangesFromContextDidSaveNotification:] + 496
6 Foundation 0x00000001840f402c __NSThreadPerformPerform + 336
7 CoreFoundation 0x00000001836d509c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 20
8 CoreFoundation 0x00000001836d4b30 __CFRunLoopDoSources0 + 536
9 CoreFoundation 0x00000001836d2830 __CFRunLoopRun + 720
10 CoreFoundation 0x00000001835fcc50 CFRunLoopRunSpecific + 380
11 GraphicsServices 0x0000000184ee4088 GSEventRunModal + 176
12 UIKit 0x00000001888e6088 UIApplicationMain + 200
13 Essentials 0x000000010004d964 main (main.m:52)
14 ??? 0x000000018319a8b8 0x0 + 0
Other similar crash groups are given below.
Crash Group 1:
main "SIGSEGV - Selector name found in current argument registers: count"
Crash Group 2:
main "SIGSEGV - Selector name found in current argument registers: autorelease"
Crash Group 3:
main "SIGSEGV - Selector name found in current argument registers: retain"
HockeyApp didn't give enough clue to identify the reason. Not stack trace information as well, since all these crashes are happening in main thread.
Selector name found in current argument registers? What does it mean? Can someone give an example for this crash.
The number of occurrences of these crash types are keep on increasing in iOS 10.

Related

Weird libobjc.a.dylib objc_msgsend crash

Search anywhere and could not found an answer. I have this issue causing the app to crash on many users.
How many?
MANY!
I can't reproduce the crash and I can't understand anything from the Crashlytics logs:
After reading some questions and answers around I suspect that something in ManagedObjectContext cause it.
Already visited:
libobjc.A.dylib objc_msgSend crash occurring with core data usage in background thread
Swift Crash libobjc.A.dylib objc_msgSend
iOS crash libobjc.A.dylib objc_msgSend
Xcode 8.1 release APP crash libobjc.A.dylib objc_msgSend
libobjc.A.dylib objc_msgSend crash occurring with core data usage in background thread
What should I do next?
Crash log:
Crashed: com.apple.main-thread
0 libobjc.A.dylib 0x1b0e720f8 objc_msgSend + 24
1 Foundation 0x19dcb3b90 __NSThreadPerformPerform + 188
2 CoreFoundation 0x19c89c76c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
3 CoreFoundation 0x19c89c668 __CFRunLoopDoSource0 + 208
4 CoreFoundation 0x19c89b9cc __CFRunLoopDoSources0 + 376
5 CoreFoundation 0x19c895a8c __CFRunLoopRun + 824
6 CoreFoundation 0x19c89521c CFRunLoopRunSpecific + 600
7 GraphicsServices 0x1b3914784 GSEventRunModal + 164
8 UIKitCore 0x19f2ce200 -[UIApplication _run] + 1072
9 UIKitCore 0x19f2d3a74 UIApplicationMain + 168
10 ZoomQuizProd 0x102a407b0 main + 19 (AppNotificationManager.swift:19)
11 libdyld.dylib 0x19c5556c0 start + 4

Xcode crash report KERN_INVALID_ADDRESS at 0x0000000100001da0

I'm having a tough time figuring this crash report sent to me by Apple. For some reason they keep telling me that my app crashes on start but I cannot recreate the crash after testing it on different devices. As I'm not sure what's causing it to crash and not being able to recreate the crash, I was wondering if anyone can help shed some light on what the problem could be?
And some extra info, I'm using AsyncImageView 1.5.1 and the Reachability class. I'm not sure if that could be the source of the crash?
Any help would be greatly appreciated. Thanks a lot!
OS Version: iOS 8.0.2 (12A405)
Report Version: 105
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000100001da0
Triggered by Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x0000000194c880b4 objc_retain + 20
1 MyApp 0x0000000100113274 0x1000f4000 + 127604
2 MyApp 0x0000000100111a84 0x1000f4000 + 121476
3 CoreFoundation 0x0000000184324430 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 16
4 CoreFoundation 0x00000001842637dc _CFXNotificationPost + 2056
5 Foundation 0x000000018515b6bc -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
6 MyApp 0x000000010011099c 0x1000f4000 + 117148
7 Foundation 0x000000018524a7ec __NSThreadPerformPerform + 368
8 CoreFoundation 0x0000000184336320 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 20
9 CoreFoundation 0x00000001843355c4 __CFRunLoopDoSources0 + 260
10 CoreFoundation 0x0000000184333674 __CFRunLoopRun + 708
11 CoreFoundation 0x0000000184261660 CFRunLoopRunSpecific + 392
12 GraphicsServices 0x000000018d35f5a0 GSEventRunModal + 164
13 UIKit 0x0000000188b664f4 UIApplicationMain + 1484
14 MyApp 0x00000001000fab44 0x1000f4000 + 27460
15 libdyld.dylib 0x00000001952dea04 start + 0

Mysterious iOS crash with tiny stack trace

I have one user, and only one user, that regularly gets the following crash:
Thread : Crashed: com.apple.main-thread
0 libobjc.A.dylib 0x0000000192e7a984 objc_object::release() + 8
1 libobjc.A.dylib 0x0000000192e79474 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 524
2 CoreFoundation 0x0000000186855b38 _CFAutoreleasePoolPop + 28
3 CoreFoundation 0x0000000186915124 __CFRunLoopRun + 1460
4 CoreFoundation 0x0000000186855dd0 CFRunLoopRunSpecific + 452
5 GraphicsServices 0x000000018c53dc0c GSEventRunModal + 168
6 UIKit 0x0000000189986fc4 UIApplicationMain + 1156
7 MyApp 0x00000001001a92d0 main (main.m:17)
8 libdyld.dylib 0x0000000193453aa0 start + 4
This is the entire crash, and I have no clue what causes it.
The user has a pretty standard phone, but it only started happening when they got a replacement iPhone 5 earlier this year. Given that timeline and the fact they are the only one with the crash, might the phone itself be at fault?
Is there anywhere I could look for more information to default this information?

UnCaughtException handler : decode backtrace symbol

I'm trying to get backtrace symbol like Xcode listout as below
*** First throw call stack:
(
0 CoreFoundation 0x018865e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x016098b6 objc_exception_throw + 44
2 CoreFoundation 0x01923903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x0187690b ___forwarding___ + 1019
4 CoreFoundation 0x018764ee _CF_forwarding_prep_0 + 14
5 Foundation 0x0124036c __NSFireDelayedPerform + 372
6 CoreFoundation 0x01844c46 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 22
7 CoreFoundation 0x0184462d __CFRunLoopDoTimer + 1181
8 CoreFoundation 0x0182c698 __CFRunLoopRun + 1816
9 CoreFoundation 0x0182bb33 CFRunLoopRunSpecific + 467
10 CoreFoundation 0x0182b94b CFRunLoopRunInMode + 123
11 GraphicsServices 0x02c249d7 GSEventRunModal + 192
12 GraphicsServices 0x02c247fe GSEventRun + 104
13 UIKit 0x0037c94b UIApplicationMain + 1225
14 CrashHandler 0x000088ad main + 141
15 libdyld.dylib 0x06244725 start + 0
16 ??? 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
I'm trying to extract symbol from NSException as below code. and less information only available.
-(void)handleException:(NSException*)exception
{
[exception callStackSymbols]//I've written this into file.
}
I've got output as below
*** First throw call stack: (
0 CoreFoundation 0x326bd2bb <redacted> + 186
1 libobjc.A.dylib 0x3a33b97f objc_exception_throw + 30
2 CoreFoundation 0x326c0e07 <redacted> + 170
3 CoreFoundation 0x326bf531 <redacted> + 392
4 CoreFoundation 0x32616f68 _CF_forwarding_prep_0 + 24
5 Foundation 0x32fcb277 <redacted> + 450
6 CoreFoundation 0x326925df <redacted> + 14
7 CoreFoundation 0x32692291 <redacted> + 272
8 CoreFoundation 0x32690f01 <redacted> + 1232
9 CoreFoundation 0x32603ebd CFRunLoopRunSpecific + 356
10 CoreFoundation 0x32603d49 CFRunLoopRunInMode + 104
11 GraphicsServices 0x361b62eb GSEventRunModal + 74
12 UIKit 0x34519301 UIApplicationMain + 1120
13 CrashHandler 0x0007f421 main + 116
14 libdyld.dylib 0x3a772b20 <redacted> + 0
)
How to decode <redacted> symbol?
Reference and Understanding:
I've refer SO post1, SO post2 but It need dSYM file and we have to manually decode as like testflight.. Without dSYM file, how to do this?
Symbolication is the process of translation a memory address to a symbol that contains all or some of the following elements:
class name
method name
file name
line number
When symbolicating on the device with the app symbols being part of the app binary, only class name and method name can be retrieved. It is not possible to get file name and line number this way.
When symbolicating using the app dSYM, it is possible to get all data, as long all information is available when building the app. E.g. when using third party static libraries, file name and line number might be missing for those calls.
<redacted> symbols can only show up for system calls when symbolicating system framework addresses on the device. The reason the class name and/or method name doesn't show up is an iOS memory optimization. Explanation for this can be found here: https://devforums.apple.com/thread/171264
To symbolicate these addresses, you need to have the iOS symbols of the iOS version and CPU architecture that was used to create the stack trace on the computer that is symbolicating the report.
It is possible to get these symbols as part of Xcode or by connecting a device of the specific iOS version and CPU architecture to Xcode, which will then fetch the symbols. Note that e.g. for iOS bugfix versions that do not come with an updated SDK, the only way to get the symbols is using a device.
Symbolication on a computer can be done using Xcode organizer or manually using the symbolciatecrash.pl script which is part of Xcode manually in the terminal.
For symbolication to work with Xcode or the script, you need a full crash report which contains lots more information than your posted stack trace.
To use atos to manually symbolicate the frame addresses of your report, you'll also need the load address for each binary that a frame references, e.g. from Foundation, CoreFoundation, UIKit. The shown stack trace doesn't provide this information. There are multiple posts here on StackOverflow how to use atos manually.
There is no way to symbolicate the trace without a dSYMbolication file.
You could try to build your code with the option not to strip debug symbols but I'm not sure.
Also implementing a crash handler is a very delicate task that I would leave to pro's ;)
Yet you can give it a try and probably learn new things.

Unable to symbolicate frameworks sometimes

I am completely at a loss on this one. I was able to symbolicate one of my crash reports (obtained from a user submitting it via the app) and it looked like this:
Thread 0 Crashed:
0 libobjc.A.dylib 0x360a3fbc objc_msgSend + 16
1 libobjc.A.dylib 0x360a50c5 _objc_rootRelease + 37
2 Foundation 0x31b7ec75 _timerRelease + 49
3 CoreFoundation 0x3729e709 __CFRunLoopDoTimer + 429
4 CoreFoundation 0x3729d29f __CFRunLoopRun + 1207
5 CoreFoundation 0x372204dd CFRunLoopRunSpecific + 301
6 CoreFoundation 0x372203a5 CFRunLoopRunInMode + 105
7 GraphicsServices 0x35dddfed GSEventRunModal + 157
8 UIKit 0x3055b743 UIApplicationMain + 1091
9 [App Name] 0x00002463 main (main.m:54)
However all of the rest of the crash reports look like this after being symbolicated:
Thread 0 Crashed:
0 libobjc.A.dylib 0x3790bfbc 0x37908000 + 16316
1 libobjc.A.dylib 0x3790d0c5 0x37908000 + 20677
2 Foundation 0x3505ec75 0x3505a000 + 19573
3 CoreFoundation 0x37d99709 0x37d0c000 + 579337
4 CoreFoundation 0x37d9829f 0x37d0c000 + 574111
5 CoreFoundation 0x37d1b4dd 0x37d0c000 + 62685
6 CoreFoundation 0x37d1b3a5 0x37d0c000 + 62373
7 GraphicsServices 0x37af2fcd 0x37aef000 + 16333
8 UIKit 0x3189b743 0x3186a000 + 202563
9 [App Name] 0x00002463 main (main.m:54)
Why do CoreFoundation, UIKit, etc. symbolicate in the first instance but not for the rest?
NOTE: I do have the original archive (that was submitted to the app store) and these are being symbolicated within Xcode 4.2 simply by dragging it into the organizer.
You most likely do not have the symbols on your Mac of the iOS version that crashed.
Check the iOS Version of the crash report (shows up in the top part of the report) and then check if you have the symbols for this iOS version here: /Developer/Platforms/iPhoneOS.platform/DeviceSupport.

Resources