iPhone模拟器崩溃

时间:2011-09-16 14:02:23

标签: iphone ios-simulator calayer

我的应用程序仅在模拟器中崩溃,它不会在设备上崩溃。

它在模拟器中崩溃并且除了这个之外什么也没给我:

  #0    0x00000000 in 0x00000000 ()
    #1  0x0182966e in icu::RuleBasedBreakIterator::handleNext ()
    #2  0x018293dc in icu::RuleBasedBreakIterator::next() ()
    #3  0x01828a12 in icu::RuleBasedBreakIterator::following(int) ()
    #4  0x043378dd in WebCore::nextBreakablePosition(unsigned short const*, int, int, bool) ()
    #5  0x04cc2fca in -[NSString(WebStringDrawing) __web_drawInRect:withFont:ellipsis:alignment:letterSpacing:lineSpacing:includeEmoji:truncationRect:measureOnly:renderedStringOut:] ()
    #6  0x04cc07be in -[NSString(WebStringDrawing) __web_drawInRect:withFont:ellipsis:alignment:letterSpacing:lineSpacing:includeEmoji:truncationRect:measureOnly:] ()
    #7  0x04cc0499 in -[NSString(WebStringDrawing) _web_drawInRect:withFont:ellipsis:alignment:lineSpacing:includeEmoji:truncationRect:measureOnly:] ()
    #8  0x04cc021b in -[NSString(WebStringDrawing) _web_sizeInRect:withFont:ellipsis:lineSpacing:] ()
    #9  0x0053fc33 in -[NSString(UIStringDrawing) sizeWithFont:constrainedToSize:lineBreakMode:lineSpacing:] ()
    #10 0x00644987 in -[UILabel _drawTextInRect:baselineCalculationOnly:] ()
    #11 0x006422fc in -[UILabel drawTextInRect:] ()
    #12 0x00559187 in -[UIView(CALayerDelegate) drawLayer:inContext:] ()
    #13 0x00221b5e in -[CALayer drawInContext:] ()
    #14 0x0022de47 in backing_callback(CGContext*, void*) ()
    #15 0x0017b1f7 in CABackingStoreUpdate ()
    #16 0x0022dd24 in -[CALayer _display] ()
    #17 0x0022427d in CALayerDisplayIfNeeded ()
    #18 0x001c90c3 in CA::Context::commit_transaction(CA::Transaction*) ()
    #19 0x001ca294 in CA::Transaction::commit() ()
    #20 0x001ca555 in CA::Transaction::release_thread(void*) ()
    #21 0x98f4de0c in _pthread_tsd_cleanup ()
    #22 0x98f0664c in _pthread_exit ()
    #23 0x98f069a0 in pthread_exit ()
    #24 0x00c93d1a in -[NSString compare:options:] ()
    #25 0x00c93c98 in __NSThread__main__ ()
    #26 0x98f04ed9 in _pthread_start ()
    #27 0x98f086de in thread_start ()

为什么会这样?

感谢。

1 个答案:

答案 0 :(得分:1)

在调试器中设置NSZombieEnabledMallocStackLoggingguard malloc。然后,当您的应用程序崩溃时,请在gdb控制台中输入:

(gdb) info malloc-history 0x543216

0x543216替换为导致崩溃的对象的地址,您将获得更有用的堆栈跟踪,它可以帮助您查明代码中导致问题的确切行。

See this article for more detailed instructions.


另一个想法是尝试在模拟器设置应用程序中关闭自动更正。

enter image description here