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, который работал для меня,и который я проголосовал.
- в меню Xcode, выберите проект > изменить параметры проекта...
- выберите вкладку build
- в поле поиска введите "уровень оптимизации", Выберите это поле и выберите Нет.
- следующий поиск "формат отладочной информации", Выберите это поле и выберите" карлик "или"карлик с dSYM".
будет поставил это в комментариях к своему посту, если бы у меня были привы. ;)
это стоило мне серьезного времени и было откровенно небрежно со стороны Apple, но в целом я не могу жаловаться.
убедитесь, что вы строите с карликовыми символами и без оптимизации. llvm-это новый сервер, и не все его оптимизированные codegen подключены к генерации символов отладки.
Это может помочь. Попробуйте отключить "оптимизацию времени связи" в параметрах сборки проекта. Это исправило проблему, которую я имел с отсутствующими символами отладки.
на самом деле, это исправило кучу странных проблем, которые у меня были с Clang. Я бы сказал, что эта функция слишком кровоточит, чтобы использовать ее.
GDB от FSF добавлена только поддержка JIT-кода очень недавно.
Я не знаю, поддерживает ли Apple GDB его вообще (вы получаете разумные трассировки стека?). Если это так, эта поддержка (по-видимому) неполная.
У меня была эта проблема и я решил ее, поставив галочку рядом с пунктом меню: "проект > установить активную конфигурацию сборки > отладка". Ранее была выбрана опция "Release". Местные жители начали появляться в отладчике для моего проекта с тех пор.