2009-04-08 3 views
14

Я пытаюсь проанализировать приложение iPhone с помощью приложения Leaks, и все работает нормально, за исключением тех случаев, когда я пытаюсь просмотреть подробную информацию об определенной утечке памяти. Утечки, похоже, не загружают мой исходный код. Глядя на представление стека справа, я вижу вызовы, которые ссылаются на фреймворки iPhone, но все, что ссылается на исходный код, который я написал, пуст. Снимок экрана ниже иллюстрирует мою мысль. Блоки, которые являются светло-голубыми, должны ссылаться на мой исходный код. У кого-нибудь была эта проблема? Является ли утечка просто не найти мой исходный код/​​символы правильно? Благодаря!Инструменты Утечки - Не показывать мой исходный код

EDIT: Я собираю приложение, используя «Устройство - iPhone OS 2.2» с конфигурацией Debug. Я запускаю утечки, выбрав Run-> Start With Performance Tool-> Leaks изнутри Xcode. Как можно «сделать файлы символов доступными» для утечек?

alt text http://www.andrewgarrison.com/forum/leaks_nosource.png

ответ

2

Удалят не-ASCII символы из обоего, загрузочного диска
и имя хост (см панели Sharing в System Preferences) и перезагрузка.

Ta da!

+0

Это работало? Как мой загрузочный диск, так и имя хоста - это одиночные слова с только символами ASCII, но я тоже не вижу символов. –

+0

Это помогло мне с журналами сбоев в стиле 2.x. Для стиля 3.0 мне пришлось изучить некоторые perl и исправить символический скрипт. Вероятно, есть определенная версия. –

+0

Что значит «исправить символический скрипт»? Я застрял в этой же проблеме без символов не-ascii в любом месте. Инструменты * используются * для работы для меня до моего обновления «Snow Leopard». – n8gray

1

Вы компиляции в режиме отладки и сделать символ файлы доступны?

+0

бы downvoter пожалуйста, оставьте комментарий. Благодарю. –

8

Я видел, как это произошло, но с другой конфигурацией. В Snow Leopard 10.6.1, Xcode 3.2, Instruments 2.0 я не получал никаких символов в Leaks при запуске iPhone OS 3.0 в симуляторе. Поиск на форумах разработчиков iPhone от Apple показал, что это была известная проблема с iPhone SDK SDK (который работал), а переключение активного SDK на 3.1 было обходным путем. Конечно, это сработало для меня!

+1

У меня была такая же проблема, и аналогичная замена активного SDK на iPhone 3.1 тоже работала для меня. Благодаря! – keremk

1

Если ваш целевой каталог сборки начинается с "." (например, я использовал «.xcode-build»), тогда файлы .dsym не будут найдены. В моем случае изменение каталога сборки в виде «xcode-build» устранило проблему, и теперь все символы моего приложения отображаются в виде следов стека!

1

У меня была та же проблема. Оказалось, что я установил каталог сборки в/tmp/xcode. При изменении этого значения по умолчанию исправлена ​​проблема. Это было с Xcode 3.2.3.

13

Для прошивкой 4.0 и выше, способ исправить символы и превратить эти бесполезные адреса памяти в красивые имена файлов, имена функций и номера строк заключается в следующем:

  1. В Xcode, перейдите к Run -> Run с инструментом Performance Tool и выберите свой инструмент
  2. После загрузки инструментов нажмите кнопку «Стоп», чтобы остановить запись. Перейдите в Файл -> Re-Symbolicate Document.
  3. В новом окне нажмите Путь и нажмите кнопку плюс (+), чтобы добавить новый путь. Перейдите в папку, содержащую файл вашего проекта, и нажмите «Открыть». Нажмите Символировать.
  4. Прибыль!

Я искал это в течение хорошего месяца, прежде чем я, наконец, пришел к решению. Надеюсь, это поможет некоторым из вас!

+1

Это сработало для меня! –

+1

Это сработало для меня тоже :) Большое спасибо –

+1

Спасибо за этот ответ, я не мог получить ничего подобного. Это сработало отлично. –

2

Project Настройки>Edit Project

Выберите Debug цель

Нажмите Построить Tab

Убедитесь Strip сшитый продукт снят

0

У меня есть Snow Leopard с Xcode 4.5.2 - Инструменты 4.5 Как только я установил дефолт по умолчанию для Legacy, он начал показывать

Перейти к файлу ----> Настройки проекта ----> Дополнительно --- Выбрать Наследие

Debug Location ---Legacy Settings