Отладочная информация "DWARF" и журналы сбоев

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

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

Обвязка связанного продукта - отладка - нет, выпуск - да

Убрать символы отладки во время копирования - отладка - нет, выпуск - да

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

То, что заставило его работать, также установило формат информации отладки "DWARF с файлом dSYM" для настройки отладки.

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

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

1 ответ

Решение

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

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

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

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

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