iOS 崩溃符号

Posted

技术标签:

【中文标题】iOS 崩溃符号【英文标题】:iOS Crash Symbolication 【发布时间】:2017-10-25 01:53:31 【问题描述】:

我试图象征性地报告了一次崩溃。我有所有必要的 dsym、原始存档和一些未符号化的崩溃日志。我尝试使用 Xcode 提供的 symbolicatecrash 工具来完全符号化崩溃日志,但它只是符号化我的应用程序中的符号:

Last Exception Backtrace:
0   CoreFoundation                  0x185b1fd38 0x1859de000 + 1318200
1   libobjc.A.dylib                 0x185034528 0x18502c000 + 34088
2   AVFoundation                    0x18b3d4208 0x18b31d000 + 750088
3   Shortcuts                       0x1004d47ec 

FlashlightManager.setBrightness(brightness:) + 378860 (FlashlightManager.swift:40)
4   Shortcuts                       0x1004af9a4 specialized FlashlightjavascriptExport.toggle() + 227748 (FlashlightJavascriptExport.swift:0)
5   CoreFoundation                  0x185b276a0 0x1859de000 + 1349280
6   CoreFoundation                  0x185a06820 0x1859de000 + 165920
7   JavaScriptCore                  0x18cb80d3c 0x18c41f000 + 7740732
8   JavaScriptCore                  0x18cb8048c 0x18c41f000 + 7738508
9   JavaScriptCore                  0x18cb80924 0x18c41f000 + 7739684

如您所见,FlashlightManagersetBrightness 方法中的某些内容导致了问题。但是,我看不出这可能会导致崩溃:

func setBrightness(brightness: Float) throws 
    guard let avDevice = self.avDevice else 
        throw FlashlightManagerExceptions.noTorch
    

    try avDevice.lockForConfiguration()
    if brightness > 0 
        try avDevice.setTorchModeOn(level: brightness)
     else 
        avDevice.torchMode = .off
    
    currentBrightness = brightness
    avDevice.unlockForConfiguration()

由于崩溃报告没有提供更多详细信息,而且我在此方法中看不到任何明显的东西,因此我无法确定崩溃的原因。

有什么方法可以表示来自CoreFoundationlibobjc.A.dylibAVFoundation 的堆栈跟踪的其他部分,以便我可以获得有关此崩溃的更多信息?

【问题讨论】:

Atos does not symbolicate system frameworks/libraries properly的可能重复 虽然这个答案让我走上了正确的道路,但这实际上不是我的问题。 【参考方案1】:

原来我本地没有 ios 11.0.3 的系统框架符号,所以symbolicatecrash 无法符号化系统框架符号。

通过参考这个问题的答案,我能够看到我没有必要的符号:Atos does not symbolicate system frameworks/libraries properly

在我的设备上安装 iOS 11.0.3 并将我的设备连接到 Xcode 后,iOS 11.0.3 的符号会自动下载,symbolicatecrash 开始为整个崩溃日志工作。

【讨论】:

以上是关于iOS 崩溃符号的主要内容,如果未能解决你的问题,请参考以下文章

iOS 查看崩溃日志与符号化

iOS崩溃:在键盘上敲击地球仪以转到表情符号键盘会导致崩溃

iOS 符号化崩溃日志

iOS系统app崩溃日志手动符号化

iOS小技能:iOS15崩溃排查技巧(symbolicatecrash符号化分析问题导出和隐藏符号)

xcode 6.1中的崩溃日志符号化IOS 8.1.2?