___lldb_unnamed_function в символьном журнале аварий
У меня есть журнал сбоев, созданный на iPhone OS 7.0.4. У меня есть соответствующие файлы.app и.dSYM. Когда я символизирую журнал сбоев с Xcode 5, он показывает мне что-то вроде этого:
Thread 0 Crashed:
0 MyProject 0x001df98a ___lldb_unnamed_function6108$$MyProject + 42
1 MyProject 0x001e0c49 ___lldb_unnamed_function6119$$MyProject + 9
2 MyProject 0x002928d5 ___lldb_unnamed_function8439$$MyProject + 13
3 MyProject 0x0027fa1f ___lldb_unnamed_function8072$$MyProject + 287
4 MyProject 0x0028e657 ___lldb_unnamed_function8368$$MyProject + 27
5 MyProject 0x002888d1 ___lldb_unnamed_function8257$$MyProject + 201
Когда я символизирую журнал сбоев с помощью Xcode 4, он дает правильный результат - он показывает мне классы и методы из моего приложения, где произошел сбой. В трассировке стека нет анонимных блоков.
Почему Xcode 4 и Xcode 5 создают разные символические журналы сбоев? Когда я запускаю скрипт symbolicatecrash в подробном режиме, он показывает одинаковые результаты для обоих кодов Xcode: они соответствуют правильным файлам.app и.dSYM и оба заканчиваются следующими строками:
done.
1 binary images were found.
Running /Applications/Xcode.app/Contents/Developer/usr/bin/atos -arch armv7 -l 0xd1000 -o '<PATH>/MyProject.app/MyProject' 0x002928d5 0x002888d1 0x001e0c49 0x0027fa1f 0x000d8f27 0x001df98a 0x0028e657 |
got symbolicator for <PATH>/MyProject.app/MyProject, base address 4000
6 ответов
У меня также были проблемы с символикой xcode 5
поэтому я прибегнул к символизации моих символов вручную, используя atos.
atos -arch armv7 -o myApp.app/myApp 0x178e9e
--
Warning: /usr/bin/atos is moving and will be removed from a future OS X release.
It is now available in the Xcode developer tools to be invoked via: `xcrun atos`
To silence this warning, pass the '-d' command-line flag to this tool.
--
AFJSONEncode (in myApp) + 434
предупреждение выглядело интересно, поэтому я решил попробовать xcrun atos
xcrun atos -arch armv7 -o myApp.app/myApp 0x178e9e
___lldb_unnamed_function6926$$myApp (in myApp) + 434
который дает мне безымянную функцию.
так что я предполагаю, что Xcode 5 использует xcrun atos, в котором есть ошибка.
использование atos помогло мне диагностировать проблему и исправить ее. У меня не установлен Xcode 4. возможно, вы можете проверить, дает ли Xcode 4 те же результаты, что и atos? Я следовал инструкциям в этом вопросе
Я в здравом уме написать сценарий для символизации аварийных журналов: /
У меня была та же проблема, и я решил ее, рассчитав адрес для функции ___lldb_unnamed_function из отчетов о сбоях iOS: atos не работает должным образом.
После этого запустите:
xcrun atos -arch armv7 (s) -o Xyz.app.dSYM / Содержание / Ресурсы / DWARF / xyz Calculated_Address
У меня возникли такие проблемы, когда я забыл выйти из Spark Inspector при отладке нашего приложения на iOS 5
устройство (например, original iPad
).
Как я обнаружил в комментариях к Cannot репликации обзора приложений Apple iOS, бета-версия Xcode 5.1 решает эту проблему. Теперь я получаю правильные символы для своих отчетов о сбоях.
Вы, должно быть, создали сборку с xcode 4.6 и, возможно, теперь вы обновлены до xcode 5. вам нужно установить каталог разработчика xcode на каталог разработчика xcode 4.6, чтобы он работал.
В журнале сбоев были те же символы ___lldb_unnamed_function.
Фактические классы и методы можно получить из KSCrash ( стороннего iOS Crash Reporter), где произошел сбой.
Поддерживает необработанные исключения C++ тоже!