Как вручную символизировать аварийный журнал с 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

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