Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
982 views
in Technique[技术] by (71.8m points)

xcode - iOS app crashing every other launch, can't find error

First time I launch the app, everything seems to run fine. I'll hit the stop button, do some work and when I go to launch it again, it seems to crash before it can even load anything. Press stop, hit Run again, and it works fine. Until I repeat the process.

This is where xcode is highlighting the error with "Thread 1:signal SIGABRT". Obviously nothing useful here.

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([PokerAppDelegate class]));
    }
}

The debug console shows nothing besides (lldb) (So I suppose its stopping, not crashing at this point) So, when I perform a BT this is what I get:

(lldb) bt
* thread #1: tid = 0x1c03, 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10, stop reason = signal SIGABRT
    frame #0: 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x99ea1b2f libsystem_c.dylib`pthread_kill + 101
    frame #2: 0x04a7057b libsystem_sim_c.dylib`abort + 140
    frame #3: 0x01dc0b4e GraphicsServices`GSRegisterPurpleNamedPort + 348
    frame #4: 0x01dc069f GraphicsServices`_GSEventInitialize + 123
    frame #5: 0x01dc0c1f GraphicsServices`GSEventInitialize + 36
    frame #6: 0x000163f9 UIKit`UIApplicationMain + 600
    frame #7: 0x00001d0d Guitar Chord Poker HD`main(argc=1, argv=0xbffff32c) + 141 at main.m:16
    frame #8: 0x00001c35 Guitar Chord Poker HD`start + 53
(lldb) 

Here's what I have done so far:

  • Performed a 'Clean'
  • I've reset the simulators and reset my computer
  • I've commented out all the code in the view controller, still crashes
  • I've commented out all the code in the app delegate, still crashes
  • BUT....I've run the app on a device outside of Xcode, and it seems to work perfectly fine.
  • (EDIT) I've deleted/reinstalled xcode, and all content(Simulators, Docs) from the various cache folders (This stops xcode from automatically reinstalling the old ones after a new download). Still can't find where command line tools is kept though. Still crashes.

Despite all this, apps still crash every second/other launch.

Thing is I had no issues until the most recent Xcode update. Could it be an Xcode bug?

(EDIT) I am also running the latest developer releases of OSX. Could that be interfering?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Seems to be a combination of OS X 10.8.4 and LLDB. As kenster says, switching to GDB makes the problem go away.

Edit:
It's caused by a race condition in the debug server (I hear).

Here's a fix if you want to keep using LLDB: Instead of clicking Run while the app is already running in the simulator, kill it in Xcode (?-.), say "I love Xcode" 5 times and Run it again (?-R). It won't crash, I tested it.


Fixed in Xcode 4.6.3.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...