Отладочная информация "DWARF" и журналы сбоев - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь сопоставить свое понимание форматов отладочной информации «DWARF» с «DWARF с файлом dSYM» с тем, что я вижу в информации о сбое для различных конфигураций сборки iOS.

Я пытался решить проблему, когда сбой сборки при отладочной конфигурации не обозначался по умолчанию. Это были мои настройки сборки до того, как проблема была решена -

Strip Linked Product - Отладка - Нет, Выпуск - Да

Удаление символов отладки во время копирования - Отладка - Нет, Отмена - Да

Формат информации отладки - Отладка - DWARF, Выпуск - DWARF с файлом dSYM

Что заставило его работать, так это установив формат информации отладки «DWARF с файлом dSYM» для конфигурации отладки.

Мои вопросы: зачем мне устанавливать формат «DWARF с файлом dSYM», если я указываю, что продукт не должен быть извлечен из его символов в файл dSYM (в настройке продукта, связанного с полосами)?

Мое (возможно, неправильное) понимание было таково, что если я установлю его в DWARF, то вся отладочная информация будет внутри двоичного файла приложения, и мне не нужен отдельный файл dSym для символизации? Пожалуйста, помогите мне лучше понять это.

1 Ответ

0 голосов
/ 10 января 2019

На платформах Apple DWARF никогда не запекается в исполняемый файл (за исключением размотки информации). Включение отладочной информации DWARF просто означает, что файлы .o содержат отладочную информацию в формате DWARF. Однако компоновщик не вносит это в исполняемый файл.

Если вы запрашиваете файл dSYM, отдельный шаг сборки использует dsymutil для сбора отладочной информации из файлов .o в комплект или файл dSYM.

Отладчики могут использовать карту в исполняемом файле для поиска отладочной информации в файлах .o, когда это необходимо, при условии, что вы отлаживаете на компьютере сборки. Вот почему вам обычно не нужен файл dSYM для сборки Debug. У Symbolication нет исполняемого файла, только UUID для него. Он может найти dSYM, используя UUID, но у него нет информации, чтобы найти .o файлы.

См. этот ответ от разработчика Apple, занимающегося реализацией этого материала. Кроме того, эта старая статья в вики он написал.

...