Сбой символьного сбоя на xcode 4.5
Я только что обновил свой xcode до версии 4.5, я попробовал три способа символизации аварийного журнала, но ни один из них не увенчался успехом.
Сначала я получил журнал сбоев со своего устройства, а затем импортировал его в "Журналы устройств" Организатора, но точная функция моего приложения не может быть отображена, адрес памяти по-прежнему отображается в результате.
Во-вторых, я скопировал файл 'symbolicatecrash' из '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources' в '/usr/local/bin'и поместите файл.DSYM, файл.app и файл.crash в папку, выполните команду: 'symbolicatecrash Myapp.crash', в результате по-прежнему будет отображаться адрес памяти.
Наконец, я попробовал метод из http://xperienced.com.pl/blog/symbolicate-ios-crash-report, но все же не повезло.
Не могли бы вы помочь мне решить этот вопрос?
Заранее спасибо!
5 ответов
Я решил это в соответствии с обсуждением в https://github.com/TheRealKerni/QuincyKit/issues/46. И запустите скрипт perl из https://github.com/TheRealKerni/QuincyKit/blob/3c4a0b163ac71599a7795508fe6a91c1ced9daa6/server/local/symbolicatecrash.pl чтобы получить правильный результат.
@Kerni, спасибо за ваш сценарий!
Вы выключили прожектор? Symbolicatecrash использует прожектор для поиска бинарных файлов и файлов dsym, поэтому, если вы выключили прожектор, он не сможет их найти. В любом случае, вот как преобразовать шестнадцатеричный адрес трассировки стека в номер строки:
[1] Найдите файл.dSym, перейдя в XCode->Organizer, щелкнув по архивам, затем щелкнув правой кнопкой мыши по архиву, и перейдите в этот каталог (вы можете просто перетащить папку в окно оболочки).
[2] перейдите в каталог dSYMs.
[3] запустите команду dwarfdump, чтобы преобразовать шестнадцатеричный адрес в номер строки в вашем коде:
dwarfdump --arch armv7 myApp.dSYM --lookup 0xaabbccdd | grep 'Line table'
Если в названии вашего приложения есть международные символы (например, "ø", "ô", "ç"), символика не будет выполнена. Различные шаги во время символизации портят эти символы, приводя к неверному пути символизации.
У меня были установлены Xcode 4.5 и 4.4.1, после удаления 4.4.1 проблема с символами была исправлена.
Если вы еще не попробовали это, обновите ваш Mac до OSX 10.8.2. Я работал под OSX 10.7.5, и обновление сразу исправило мои проблемы с сиболификацией.
Я перепробовал почти все, чтобы мои журналы аварийных ситуаций стали символом. У меня никогда не было проблем раньше, но прошло несколько месяцев с тех пор, как я посмотрел журнал аварий; в какой-то момент в течение этого периода я обновился до Xcode 4.5.2. Мне кажется, что-то с Perl-скрипт symbolicatecrash Xcode 4.5.2 не работает правильно на Mac под управлением OSX 10.7.5. В symbolicatecrash он вызывает atos, чтобы символизировать адрес; он не мог найти соответствующие символы, хотя я точно знал, что у меня есть правильный xcarchive. Во всяком случае, если вы можете позволить себе $20, весной для OSX 10.8.2 и, надеюсь, это будет работать для вас.