【问题标题】:iPhone app crashed: Assertion failed function evict_glyph_entry_from_strike, file Fonts/CGFontCache.ciPhone 应用程序崩溃:断言失败函数 evict_glyph_entry_from_strike,文件 Fonts/CGFontCache.c
【发布时间】:2009-12-30 08:01:03
【问题描述】:

这发生得非常随机。我没有删除任何tableview单元格,回溯信息:

Assertion failed: (d->entry[identifier.glyph] == g), function evict_glyph_entry_from_strike, file Fonts/CGFontCache.c, line 810.
Program received signal:  “SIGABRT”.
(gdb) bt
#0  0x97da5972 in __kill ()
#1  0x97da5964 in kill$UNIX2003 ()
#2  0x97e38ba5 in raise ()
#3  0x97e4ec5c in abort ()
#4  0x97e3b804 in __assert_rtn ()
#5  0x0037fe0e in evict_glyph_entry_from_cache ()
#6  0x003226aa in expire_glyphs_nl ()
#7  0x00322645 in CGFontCacheUnlock ()
#8  0x00321fef in CGGlyphLockUnlock ()
#9  0x0240f9b7 in ripc_DrawGlyphs ()
#10 0x0031b0d4 in draw_glyphs ()
#11 0x0031a91f in CGContextShowGlyphsWithAdvances ()
#12 0x35814178 in WebCore::Font::drawGlyphs ()
#13 0x35813da5 in WebCore::Font::drawGlyphBuffer ()
#14 0x35813aca in WebCore::Font::drawSimpleText ()
#15 0x35813760 in drawAtPoint ()
#16 0x3581307e in -[NSString(WebStringDrawing) _web_drawAtPoint:forWidth:withFont:ellipsis:letterSpacing:includeEmoji:] ()
#17 0x3090d2e9 in -[NSString(UIStringDrawing) drawAtPoint:forWidth:withFont:lineBreakMode:letterSpacing:includeEmoji:] ()
#18 0x3090cfe3 in -[NSString(UIStringDrawing) drawAtPoint:forWidth:withFont:lineBreakMode:] ()
#19 0x3093d853 in -[UINavigationItemView drawText:inRect:] ()
#20 0x3093a96b in -[UINavigationItemButtonView drawRect:] ()
#21 0x3091ff61 in -[UIView(CALayerDelegate) drawLayer:inContext:] ()
#22 0x0060daeb in -[CALayer drawInContext:] ()
#23 0x0060d8f9 in backing_callback ()
#24 0x0060d1b4 in CABackingStoreUpdate ()
#25 0x0060c3cc in -[CALayer _display] ()
#26 0x0060bf56 in CALayerDisplayIfNeeded ()
#27 0x0060b3bd in CA::Context::commit_transaction ()
#28 0x0060b022 in CA::Transaction::commit ()
#29 0x006132e0 in CA::Transaction::observer_callback ()
#30 0x30245c32 in __CFRunLoopDoObservers ()
#31 0x3024503f in CFRunLoopRunSpecific ()
#32 0x30244628 in CFRunLoopRunInMode ()
#33 0x32044c31 in GSEventRunModal ()
#34 0x32044cf6 in GSEventRun ()
#35 0x309021ee in UIApplicationMain ()

【问题讨论】:

  • 即使我遇到同样的问题....如果您有解决方案,请分享...断言失败:(d->entry[identifier.glyph] == g),函数 evict_glyph_entry_from_strike,文件字体/CGFontCache.c,第 810 行。

标签: iphone debugging crash


【解决方案1】:

https://discussions.apple.com/message/8213970?messageID=8213970 表示它似乎与使用动画块内部的函数有关...

just.do.it 评论了一半:

您好,您可以给我们看一些代码吗 这发生在哪里。

我有这个断言失败 偶尔在不同的应用程序中。目前 据我所知,似乎不是 使用一个以上的好主意 以下方法:

deleteRowsAtIndexPaths:withRowAnimation:
deleteSections:withRowAnimation:
insertRowsAtIndexPaths:withRowAnimation:
insertSections:withRowAnimation:

在 beginUpdate / endUpdates 内 块。

至少看起来也是 有问题的是调用其中之一 方法里面有一个动画 一个数据源方法,它本身就是 伴随着动画,例如 tableView:moveRowAtIndexPath:toIndexPath:

【讨论】:

    【解决方案2】:

    在我看来,UINavigationItems 上的文本绘制存在错误。

    其中一些 API 调用似乎在框架中很深,而且是您甚至不应该访问的东西,所以我不认为这直接是您的错。

    也许明智的做法是向 Apple 提交有关 iPhone SDK 和向 UINavigationItems 绘制文本的错误报告并包含此回溯。

    【讨论】:

    • 您有回音吗?我遇到了类似的问题。
    • 不,我没有得到任何有用的反馈。但我有一种感觉,这种情况更多地发生在模拟器上。在具有上述引用信息的设备上没有收到任何崩溃日志
    • 这似乎是一个合理的答案,如果没有帮助的话,会投票回 0。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2011-05-31
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多