簡體   English   中英

Xcode 9中的Symbolicatecrash錯誤

[英]Error with Symbolicatecrash in Xcode 9

我一直在嘗試在Xcode 9中使用symobolicatecrash來象征用戶提供的OS X崩潰日志。 根據我的研究,它的用法似乎很簡單。 但是,我無法克服此錯誤:

     Unsupported crash log version: 12 at .../symbolicatecrash line 619

當我檢查日志文件時,發現它確實是Report Version12。當我在Xcode中打開symbolicatecrash時,我發現了有問題的代碼:

    if(! $is_spindump_report) {
    if($report_version == 102 || $report_version == 103) { # Leopard GM
        $pat = '
            ^\s* (\w+) \s* \- \s* (\w+) \s*     (?# the range base and extent [1,2] )
            (\+)?                               (?# the application may have a + in front of the name [3] )
            (.+)                                (?# bundle name [4] )
            \s+ .+ \(.+\) \s*                   (?# the versions--generally "??? [???]" )
            \<?([[:xdigit:]]{32})?\>?           (?# possible UUID [5] )
            \s* (\/.*)\s*$                      (?# first fwdslash to end we hope is path [6] )
            ';
        %captures = ( 'base' => \$1, 'extent' => \$2, 'plus' => \$3,
        'bundlename' => \$4, 'uuid' => \$5, 'path' => \$6);
    }
    elsif($report_version == 104 || $report_version == 105) { # Kirkwood
        # 0x182155000 - 0x1824c6fff CoreFoundation arm64  <f0d21c6db8d83cf3a0c4712fd6e69a8e> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
        $pat = '
        ^\s* (\w+) \s* \- \s* (\w+) \s*     (?# the range base and extent [1,2] )
        (\+)?                               (?# the application may have a + in front of the name [3] )
        (.+)                                (?# bundle name [4] )
        \s+ ('.$architectures.') \s+        (?# the image arch [5] )
        \<?([[:xdigit:]]{32})?\>?           (?# possible UUID [6] )
        \s* (\/.*)\s*$                      (?# first fwdslash to end we hope is path [7] )
        ';
        %captures = ( 'base' => \$1, 'extent' => \$2, 'plus' => \$3,
        'bundlename' => \$4, 'arch' => \$5, 'uuid' => \$6,
        'path' => \$7);
    }
    else {
        die "Unsupported crash log version: $report_version";
    }
}

據我所知,OS X崩潰日志當前是版本12,而較舊的報告是版本11、10、9 ...我不是PERL專家,但是似乎使用此代碼,symbolicatecrash將永遠無法工作。 它似乎正在尋找報告版本102、103、104或105。我發現了許多說明如何使用symbolicatecrash的手冊/指南,因此它似乎對某些人有用。

任何人都可以幫助找出正在發生的事情。 我注意到該代碼的版權為2008-2015,所以也許這是一個舊版本,但是我在Xcode 9.4.1中找到了它。 還是symbolicatecrash僅適用於iOS崩潰日志?

看起來iOS Simulator不支持使用此腳本進行符號化。 如果您查看從設備獲得的崩潰日志,則版本為105

OS Version:          iOS 13.0 (17A5522g)
Report Version:      105

映射到perl腳本:

elsif($report_version == 104 || $report_version == 105) { # Kirkwood

與iOS模擬器上的報告版本相同

OS Version:            Mac OS X 10.14.4 (18E226)
Report Version:        12

這令人沮喪,因為在沒有連接調試器的單元測試和ui測試期間會發生崩潰日志。 所以iOS模擬器的象征會很好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM