Xcode 3.2 + LLVM = нет локальных символов при отладке

У меня есть проект для Mac OS X 10.5, который я строю на 10.6 с помощью Xcode 3.2. Когда я использую GCC 4.2 для сборки отладки и нажимаю точку останова, отладчик Xcode отображает информацию о локальной переменной нормально. Если я выбираю LLVM GCC 4.2 или Clang LLVM, когда я нажимаю точку останова, локальные символы недоступны, и GDB говорит нет символа 'self' в текущем контексте Если я попытаюсь напечатать self или любой другой местный символ. Во всех случаях создать отладочную информацию опция установлена. Конфигурация отладки имеет значение $(NATIVE_ARCH) и 10.5 SDK, строить только активную архитектуру опция установлена. Когда GDB запускается, я вижу, что он настраивается как x86_64-apple-darwin. Должно быть, я упускаю что-то очевидное. Как заставить GDB показывать локальные символы при использовании компилятора LLVM?

5 ответов


для тех, кто не знаком, немного более подробно ответ cdespinosa, который работал для меня,и который я проголосовал.

  1. в меню Xcode, выберите проект > изменить параметры проекта...
  2. выберите вкладку build
  3. в поле поиска введите "уровень оптимизации", Выберите это поле и выберите Нет.
  4. следующий поиск "формат отладочной информации", Выберите это поле и выберите" карлик "или"карлик с dSYM".

будет поставил это в комментариях к своему посту, если бы у меня были привы. ;)

это стоило мне серьезного времени и было откровенно небрежно со стороны Apple, но в целом я не могу жаловаться.


убедитесь, что вы строите с карликовыми символами и без оптимизации. llvm-это новый сервер, и не все его оптимизированные codegen подключены к генерации символов отладки.


Это может помочь. Попробуйте отключить "оптимизацию времени связи" в параметрах сборки проекта. Это исправило проблему, которую я имел с отсутствующими символами отладки.

на самом деле, это исправило кучу странных проблем, которые у меня были с Clang. Я бы сказал, что эта функция слишком кровоточит, чтобы использовать ее.


GDB от FSF добавлена только поддержка JIT-кода очень недавно.

Я не знаю, поддерживает ли Apple GDB его вообще (вы получаете разумные трассировки стека?). Если это так, эта поддержка (по-видимому) неполная.


У меня была эта проблема и я решил ее, поставив галочку рядом с пунктом меню: "проект > установить активную конфигурацию сборки > отладка". Ранее была выбрана опция "Release". Местные жители начали появляться в отладчике для моего проекта с тех пор.