Xcode Time Profiler не показывает имя символа
Обновлен до xCode 4.5 и при профилировании времени мое приложение Symbol Name больше не отображает классы или объекты, но показывает адреса памяти, как показано ниже.
0x2fd42e13
0x38014448
Я видел следующие
main
NSManagedObjectContext
Когда я мог видеть имена классов, я могу отслеживать проблемы в расширенной детали. Теперь расширенная деталь показывает то же самое, что и 0x2fd42e13.
Ответы
Ответ 1
Решил сам:
Отредактируйте свою схему, где говорится: "WhateverProjectNameIs > iPad 6.0 simulator"
Затем нажмите " Профиль" слева
На вкладке "Информация" измените "Конфигурация сборки" на "Отладка" (возможно, установите значение "Release" )
Это должно сделать это. Обратите внимание, что по какой-либо причине цель сборки не настроена на ту же конфигурацию сборки, что и цель профиля, и это сработало больше времени или два.
Ответ 2
Чтобы решить мою проблему, мне пришлось сообщить Инструменты, где мой двоичный код был таким, каким он по какой-то причине потерял его.
1. Запустите Инструменты, как обычно, чтобы получить маскированные данные.
![введите описание изображения здесь]()
2. Снимите папку с продуктами и попробуйте нажать приложение (поставщик (.appex) или приложение (.app), нажмите "Показать инспектор файлов"
![введите описание изображения здесь]()
3. В правой части экрана вы должны увидеть инспектор файлов для вашего двоичного файла. Противоположный нажмите на свойство "Полный путь" и нажмите "Копировать".
![введите описание изображения здесь]()
4. Вернитесь в Инструменты и перейдите к File->Symbols
![введите описание изображения здесь]()
5. Снимите приложение или поставщика слева и щелкните по элементу рядом с ним (оно должно иметь то же имя, что и ваше приложение)
![введите описание изображения здесь]()
6. Вы заметите, что двоичный путь красный. Это означает, что инструменты потеряли ваш двоичный файл. Нажмите значок маленькой папки в правом нижнем углу, чтобы открыть диалоговое окно "Выбрать файл". Нажмите Command+Shift+G
, чтобы ввести путь к каталогу, и вставьте ранее скопированный путь из xcode.
![введите описание изображения здесь]()
7. Теперь вы должны выбрать бинарный файл, нажмите Open
, чтобы открыть его. Нажмите кнопку "Готово" в диалоговом окне, чтобы закрыть окна. Теперь инструменты должны показывать правильные данные и имена символов при профилировании вашего кода.
![введите описание изображения здесь]()
Ответ 3
Профилирование конфигурации отладки не даст вам правильных значений профиля. Конфигурация отладки не скомпилирована для скорости, и все ваши инструкции NSLog все еще находятся.
Я создал конфигурацию сборки профиля, чтобы справиться с этой проблемой. См. мой ответ на аналогичный вопрос Stackoverflow.
Ответ 4
У меня тоже была такая же проблема, и я пробовал все шаги, которые предложили другие. Но никто из них не исправил эту проблему для меня. Итак, что я сделал, я просто открыл кнопку Instruments
и рядом с кнопкой Record
, щелкните раскрывающееся меню и выберите цель, используя опцию Choose target
. Затем нажмите кнопку Record
, теперь я могу видеть все методы на панели инструментов:)
Ответ 5
Я знаю, что это старый вопрос, но ни одно из упомянутых выше решений не помогло мне. Мне нужно переключиться на новейший симулятор iOS (теперь используйте iOS 9 вместо iOS 8), чтобы правильно отображать имя символа. Я думаю, что Xcode Instruments может работать только с симулятором, который запускает последнюю версию iOS SDK.
Ответ 6
Перезагрузка инструментов и Xcode решили мою проблему: (
Ответ 7
У меня была такая же проблема, и я попробовал другие решения безрезультатно. Проблема с Схемой, как правило, является проблемой, поэтому я начал там. Но в моем случае он был настроен правильно. Вот что, наконец, помогло мне:
- В Инструментах остановите процесс, если он работает.
- Перейдите в Файл → Символы и по пути dSYM найдите библиотеку, которая не отображается.
- В моем случае он указывал на элементы в корзине. Поэтому я опустошил корзину, удалил кэш модулей и проект в папке "Производные данные", и когда я перестроил проект, он снова начал работать. В вашем случае это может указывать на другой файл, который либо не существует, либо недоступен для инструментов.
Ответ 8
Reset путь сборки к умолчанию. Я изменил его ранее на tmp/папку, и символ не может показать код. После reset этот путь и профилировщик могут показать код правильно. Построить путь (относительно исходных данных), как показано ниже: ![Путь сборки]()