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

StackOverflow https://stackoverflow.com/questions/1370945

Вопрос

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top