Точки останова XCode 4 не ломаются на правильной линии - PullRequest
6 голосов
/ 30 марта 2011

Мои точки останова перестали работать должным образом в последней версии XCode 4. Без изменения настроек проекта точки останова больше не ломаются в той строке, в которой они установлены.

Например, в одной функции я могу установить точку останова в любом месте ее тела, но код всегда будет разрываться в последней строке функции.

В другом случае я могу установить точку останова в любом месте одной функции, и код будет разбит на строку в середине другой функции в том же файле! Трассировка после перерыва показывает, что он сломался не в том месте, и это не просто проблема синхронизации файла / отладчика.

Понятия не имею, почему это началось. Однако, казалось, что он начинался с новых точек останова, в то время как старые работали. Любые новые точки останова я добавляю в неправильном месте. И недавно некоторые файлы теперь даже не ломаются! Я могу только предположить, что точка останова настолько неправильна, что она перенесена в код, который не вызывается. Я провел многочисленные поиски в Интернете и на форумах по этой проблеме, и хотя я нашел людей с похожими проблемами, не было ни одного решения, или решение в списке (перезагрузка устройства, замена вывода отладки, отключение оптимизации и т. Д.) Не работали для меня.

Стоит отметить, что я в основном пишу на C ++ с использованием файлов .mm. За прошедший год разработки в XCode 3 и за последние несколько месяцев в XCode 4 все было хорошо! Я правильно настроил отладку. Без оптимизации отладки, без удаления мертвого кода, и я использую компилятор LLVM 2.0 с DWARD с файлом отладки dSYM. Однако изменение этих значений не имеет значения.

Пожалуйста, помогите, это сводит меня с ума !!

Обновление к этому. Это начало происходить снова на новой машине с новой установкой Lion и xcode. Весь редактор не в порядке. Пример ниже ошибок, появляющихся в неправильных строках.

Errors on the wrong lines!

Ответы [ 6 ]

4 голосов
/ 01 декабря 2011

Из того, что я прочитал, Xcode, как правило, путают с точками останова, и способ избавиться от несинхронизированной проблемы - очистить «Производные данные»; я нашел два способа очистки (инструкции действительны для Xcode 4.x):

а) Зайдите в органайзер, под Проекты, выберите ваш проект и нажмите «Удалить» на Производных данных

или

б) зайдите в меню «Продукт», удерживайте кнопку «ALT» на клавиатуре и обратите внимание, что меню меняется ... так что clean преобразуется в «Clean Build Folder ...»

3 голосов
/ 28 февраля 2012

С помощью «Настройки сборки» под целью проекта измените «Уровень оптимизации» для «Отладка» на «Нет».

Я обнаружил, что это исправило проблему для меня.

1 голос
/ 02 апреля 2011

Я исправил это, хотя не нашел основную причину.

Я удалил ссылки из проекта для файлов, которые не работали с точками останова. Затем я сделал полную очистку и пошел в папки и удалил все сборки и временные данные. Затем я открыл пакет проекта и удалил все данные, кроме самого файла проекта. Затем я скомпилировал, чтобы он выкидывал ошибки из-за отсутствующих файлов. Затем я помещаю файлы обратно в проект.

Теперь те же самые файлы прекрасно работают с точками останова!

Не знаю, почему, но рад, что это исправлено.

0 голосов
/ 19 марта 2012

Я понял, почему это происходит сейчас.Как упоминалось в одном из ответов, вы можете исправить это, удалив производные данные.Это всегда решит проблему.По какой-то причине редактор теряет связь между исходным кодом и разметкой кода, который он использует для перекрестной ссылки на точки останова, ошибки и т. Д. Удаление производных данных вынуждает его воссоздать это.

Я считаю, что это происходит толькос файлами с использованием кода C или C ++.Apple, кажется, игнорирует разработчиков C ++ на iOS.Я знаю многих профессиональных разработчиков игр, и каждый использует C ++ для написания игр.Отсутствие поддержки Apple раздражает.

0 голосов
/ 03 июня 2011

Это начало происходить со мной после того, как я обновил до XCode 4. Я просто удалил все точки останова, сделал чистку, затем заново добавил мои точки останова. Кажется, теперь работает нормально.

0 голосов
/ 30 марта 2011

Вы убрали свои цели?Shift-Cmd-K.

...