【问题标题】:iOS9: duplicated lines in crash reports are causing symbolicatecrash to get stuckiOS9:崩溃报告中的重复行导致 symbolicatecrash 卡住
【发布时间】:2015-11-02 10:02:45
【问题描述】:

不是问题,因为我已经找到了解决方法。我发布它是为了让其他人可以利用我在上面花费的时间,并使用我建议的解决方法。

我收到了一些奇怪的崩溃报告——一行重复了很多次:

...
0x190e08000 -        0x190e49fff  Notes arm64  <f45c09ce977b3282ab0e879252dfebee> /System/Library/PrivateFrameworks/Notes.framework/Notes
0x190f9c000 -        0x190fa6fff  NotificationsUI arm64  <73dcb247ed183ce7bb330d7bb55f93bd> /System/Library/PrivateFrameworks/NotificationsUI.framework/NotificationsUI
0x190fa8000 -        0x190faafff  OAuth arm64  <c2658cb3208b342dbe1e91cea30ebdd5> /System/Library/PrivateFrameworks/OAuth.framework/OAuth
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x1919c8000 -        0x1919ebfff  Pegasus arm64  <82f60f2d5ad73b5fa89d283a4e992e88> /System/Library/PrivateFrameworks/Pegasus.framework/Pegasus
0x191a30000 -        0x191a57fff  PersistentConnection arm64  <8d0b7602daee3aa588c37704a6e3a206> /System/Library/PrivateFrameworks/PersistentConnection.framework/PersistentConnection
...

它导致 symbolicatecrash (perl) 脚本卡住。 原因是该脚本最初旨在链接相似的条目,假设它们具有不同的基地址。然而,该代码从来没有工作,因为它有一个错误:

# add ourselves to that chain
$images{$nextIDKey}{nextID} = $image{base};

# and store under the key we just recorded
$bundlename = $bundlename . $image{base};

错误在于第一行实际上应该是:

$images{$nextIDKey}{nextID} = $bundlename . $image{base};

但是我建议一个解决方法,通过在此代码上方添加一个next 命令来忽略这些重复的行,即

# frameworks and apps (and whatever) may share the same name, so disambiguate
if ( defined($images{$bundlename}) ) {
    next;

这不是一个干净的解决方案,因为我们在这里缺少一些保护,但至少它适用于大多数情况。

无论如何希望 Apple 尽快删除这些重复。

【问题讨论】:

  • 我投票结束这个问题,因为它是一个错误报告,而不是一个问题。
  • 嗨@Kreiri,我知道。我可以问它为什么卡住的问题,然后回来解决。或者我根本无法分享 2 天工作的结果,这可能会让其他人头疼...
  • 感谢您分享这个,它对我真的很有用。但是,我同意 Kreiri 的观点,这是一个答案,而不是一个问题。最好是先提出问题,然后再提交一个单独的答案(这样我就可以投票给你一个好问题和一个好答案!)
  • 感谢发帖,正好解决了我的问题!
  • 这个错误仍然存​​在于 xcode 8 的 symbolicatecrash 脚本中。

标签: ios ios9 xcode8 crash-reports symbolicatecrash


【解决方案1】:

您可以使用以下 shell 脚本来修补 symbolicatecrash 来修复它:

curl -o /tmp/t.patch https://raw.githubusercontent.com/zqxiaojin/OptSymbolicatecrash/master/fix_dead_loop.patch && cd `xcode-select -p`/../SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/ && sudo patch symbolicatecrash  /tmp/t.patch && cd -

或者从我的 github 复制 symbolicatecrash https://github.com/zqxiaojin/OptSymbolicatecrash

【讨论】:

  • 从 github 复制并从终端运行时出现 bash 权限错误
  • sh: /Volumes/40gb/Applications/Xcode.app/Contents/Developer/usr/bin/xcrun: 没有这样的文件或目录 ## 警告:找不到名为“otool”的工具ipados SDK,回退到搜索 iOS SDK sh: /Volumes/40gb/Applications/Xcode.app/Contents/Developer/usr/bin/xcrun: No such file or directory ## Warning: can't find tool named ' iOS SDK 中的 otool',回退到搜索 Mac OS X SDK sh: /Volumes/40gb/Applications/Xcode.app/Contents/Developer/usr/bin/xcrun: No such file or directory ...
  • curl -o /tmp/t.patch raw.githubusercontent.com/zqxiaojin/OptSymbolicatecrash/master/… && cd xcode-select -p/../SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/ && sudo patch symbolicatecrash /tmp/t. patch && cd - % Total % Received % Xferd Average Speed Time Time Time Time Current Dload Upload Total Spent Left Speed 100 1087 100 1087 0 0 4462 0 --:--:-- --:--:-- --:- -:-- 4473 密码: patch: **** 找不到文件 symbolicatecrash : 没有这样的文件或目录
猜你喜欢
  • 1970-01-01
  • 2015-12-09
  • 2015-12-13
  • 2018-05-08
  • 2013-01-04
  • 2012-07-22
  • 1970-01-01
  • 1970-01-01
  • 2014-09-28
相关资源
最近更新 更多