Как вручную символизировать аварийный журнал с atos
После поиска по всему Интернету, чтобы найти способ символизировать мои журналы сбоев, которые я получил от Apple, я наконец-то понял, как использовать команду atos в терминале для обозначения журналов сбоев. У меня есть файл dSYM, файл.app и журналы сбоев в той же папке, и с помощью atos -arch armv7 -o APPNAME
Я смог ввести адреса памяти, и иногда (но довольно редко) появлялось имя метода. Честно говоря, у меня нет большого опыта работы с терминалом или журналами аварий. Попытка символизировать журналы сбоев от организатора Xcode, к сожалению, абсолютно ничего не сделала, и пытается использовать symbolicatecrash
файл в содержимом пакета Xcode также потерпел неудачу. Итак, я остался с единственным другим вариантом, который мне известен.
Теперь мой вопрос заключается в следующем: как можно создать головы или хвосты этих адресов памяти? Какие адреса я должен ввести, чтобы добраться до точки, в которой приложение рухнуло? Я нахожусь на 90% пути, я просто не знаю, какие адреса дадут мне ценную информацию, а какие - бесполезны. Приложенная здесь картина аварийного журнала:
Любая помощь с благодарностью.
2 ответа
Я предполагаю, что вы видели вопрос Stackru с информацией об atos (как я это сделал), но не правильно рассчитали адрес, чтобы поместить его в atos. Посмотреть здесь:
Отчеты о сбоях iOS: atos не работает должным образом
адрес символа = слайд + адрес стека - адрес загрузки
Используйте otool, чтобы получить адрес слайда (обычно 0x001000)
otool -arch ARCHITECTURE -l "APP_BUNDLE/APP_EXECUTABLE" | grep -B 3 -A 8 -m 2 "__TEXT"
Прокрутите до конца журнал сбоев, чтобы получить адрес стека из раздела двоичных изображений (первый адрес в списке в разделе "Двоичные изображения").
Затем добавьте его с помощью калькулятора HEX, который поставляется с вашим Mac (используйте представление программиста). Наконец вычтите ваш адрес загрузки из трассировки стека в вашем журнале сбоев (в вашем случае это выглядит как 0x00012efe).
Поместите это в atos, чтобы получить строку, которая вызывает сбой:
atos -arch armv7 -o YOURAPP.app'/'yourapp' 0xADDRESSFROMABOVE
Вы можете попробовать использовать мой скрипт для достижения этой цели: https://github.com/IdoTene/MacosSymbolicateCrash/blob/master/symbolicate.py
Он инкапсулирует команду atos