Я создал приложение для Mac OS X, которое настроено на удаление отладочной информации для Release и создание файлов dSYM.
(проект настроен, как описано здесь: http://bit.ly/tJEQml кэшированная версия http: /developer.apple.com/tools/xcode/symbolizingcrashdumps.html, которая больше не существует)
Как и ожидалось, сгенерированные отчеты о сбоях для моего приложения не показывают информацию о строке для трассировки стека внутренних вызовов моих приложений.
При анализе отчета о сбое я просто не могу получить GDB или atos , чтобы получить информацию о строке для трассировки стека.
Отрывок отчета о сбое:
0 CoreFoundation 0x00007fff920f7286 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff91f74d5e objc_exception_throw + 43
2 CoreFoundation 0x00007fff920f70ba +[NSException raise:format:arguments:] + 106
3 CoreFoundation 0x00007fff920f7044 +[NSException raise:format:] + 116
4 CoreFoundation 0x00007fff920b429b -[__NSCFDictionary setObject:forKey:] + 219
5 AppName 0x00000001015e9c61 AppName + 85089
Я попытался GDB , выполнив следующие действия:
- под названием
gdb -arch x86_64
- загрузил приложение с помощью команды
file
(пробовал и AppName.app, и Content / MacOS / AppName) - GDB запрашивает символы, которые были загружены (даже пытался загрузить dSYM с помощью
file
) - называется
info line * 0x00000001015e9c61
- GDB отвечает
No line number information available for address 0x1015e9c61
Я пытался с atos , выполняя следующие действия:
- называется
atos -arch x86_64 -o AppName.app
(также пытался напрямую в двоичный файл и в файл DWARF dSYM) - набрал
0x00000001015e9c61
и нажал enter - atos просто повторяет
0x00000001015e9c61
Что может быть не так?
Кажется, что символы загружаются правильно (по крайней мере, об этом сообщает gdb), и я уверен, что сбой, dSYM и комплект приложений совпадают.