Я использую GDB для ручной символизации. Было бы слишком громоздко, если бы вы делали это много, но в типичном журнале аварий не очень много символов, и мне нужно только символизировать журнал аварий время от времени.
Процедура следующая:
- Поместите файл .dSYM для вашего приложения в ту же папку, что и .app. *
- Откройте Терминал и
cd
в папку с шага 1.
- Запустите ваше приложение в GDB:
$ gdb YourApp.app/Contents/MacOS/YourApp
- Установите параметры печати asm-demangle и print symbol-file:
set print asm-demangle on
set print symbol-filename on
- Используйте команду p / a, чтобы найти номера строк для каждого адреса в трассировке стека:
p/a 0x000000010d005483
Эти инструкции взяты с этой страницы (по-видимому, больше не в сети).
* Обратите внимание, что .dSYM имеет UDID, привязывающий его к конкретной сборке, с которой он был создан. Итак, если у вас нет оригинального файла .dSYM, у вас проблемы. Теоретически, вы даже не можете просто извлечь ту же ревизию из системы контроля версий и перестроить, потому что этот UDID будет другим.