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 этот путь и профилировщик могут показать код правильно. Построить путь (относительно исходных данных), как показано ниже: Путь сборки