___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++ тоже!

Другие вопросы по тегам