Objective-C iPhone App EXC_BREAKPOINT (SIGTRAP)

I recently released the application about a month ago, it was carefully tested by me, my partner and beta testers. Recently, a user contacted me that the application could not even open (crash after launching the screen), they have the correct OS, and they tried to reinstall.

I asked for a crash log and they sent it to me ...

Exception Type: EXC_BREAKPOINT (SIGTRAP) Exception Codes: 0x00000001, 0xe7ffdefe Crashed Thread: 0 Thread 0 Crashed: 0 dyld 0x2fe01060 0x2fe00000 + 4192 1 dyld 0x2fe088d4 0x2fe00000 + 35028 2 dyld 0x2fe0196c 0x2fe00000 + 6508 3 dyld 0x2fe01048 0x2fe00000 + 4168 Thread 0 crashed with ARM Thread State: r0: 0x2fe23ca0 r1: 0x00000000 r2: 0x2fe23ca0 r3: 0x00000000 r4: 0x2ffff4e0 r5: 0x2ffff4bc r6: 0x2fe005c0 r7: 0x2ffffb00 r8: 0x00000004 r9: 0x2fe57cf0 r10: 0x2fe236c8 r11: 0x00000009 ip: 0x0000018d sp: 0x2ffff5b8 lr: 0x2fe088dc pc: 0x2fe01060 cpsr: 0x00000010 Binary Images: 0x2fe00000 - 0x2fe22fff dyld ??? (???) <f6a50d5f57a676b54276d0ecef46d5f0> /usr/lib/dyld 

I can not find the problem in my application, what problems cause EXC_BREAKPOINT (SIGTRAP)? I assume the error is in my AppDelegate, as it crashes right after the screen launches.

+7
logging objective-c iphone crash
source share
4 answers

I also got this error and fixed it. This person most likely runs OS3, and you use a block of code from OS4, you need to set a weak link in the library so that it can load correctly. in the build settings for LLVM -weak_library / usr / lib / libSystem.B.dylib

also discussed here When loading iOS 4 when starting iOS 3.1.3: Symbol not found: __NSConcreteStackBlock

+4
source share

This is a rather strange stack trace. It crashes in dyld (dynamic library loader). This suggests that he was having problems loading a dynamic library or Framework, which means it when loading system code (since you cannot have a 3rdparty dynamic library on a standard iphone). Please note that in the Binary Images section, does your code not even seem to be loaded (or the rest of the dump has been truncated)? Do you manually load dynamic libraries ( dlopen() or the like)? Even if you were, you would expect main() be on the stack if your program really loaded ....

When you say that they tried to reinstall, I assume that you mean your application? Does this mean that they uninstalled your application and then reinstalled it or something else? The most likely reason that comes to mind is corruption in conjunction. But you think the removal and reinstallation will be fixed. Removing, rebooting, and then reinstalling will be more aggressive.

My next question is: will it be a jailbroken iPhone. I would ask the user to restart the iPhone if he was not already. I will even be tempted to ask them to do OS recovery, but it is always inconvenient to ask the client to do it.

+1
source share

There is a general rule with crash logs: if the backtrack is useless, look at the console log output.

In this case, it is likely that you are using things that are not present in the older version of the OS. When a dyld (dynamic loader) tries to resolve characters at boot time, it cannot find some of them, and either the character or the library is not loosely coupled. The console log should say which character / library failed to load.

In general, you can simply change the framework from Required to Weak.

0
source share

Try the following steps: Apple technical note when reading files with errors . It explains how to turn hexadecimal code into characters (class names, method names, variable names, etc.) from your application.

Signal.h contains a list of errors, such as SIGTRAP, which is defined as:

 #define SIGTRAP 5 /* trace trap (not reset when caught) */ 
-one
source share

All Articles