У меня установлены точки останова, но Xcode игнорирует их.
У меня установлены точки останова, но Xcode игнорирует их.
Ответы:
Прежде всего, я на 100% согласен с предыдущими людьми, которые сказали « ВЫКЛЮЧИТЕ» Load Symbols Lazily
.
Я хочу добавить еще две вещи.
(Мое первое предложение кажется очевидным, но в первый раз, когда мне его предложили, моя реакция была такой: «давай, пожалуйста, ты правда думаешь, что я не знаю лучше ... о.»)
Убедитесь, что вы случайно не установили «Active Build Configuration» на «Release».
В разделе «Цели» в графическом дереве вашего проекта щелкните правой кнопкой мыши цель и выберите «Получить информацию». Найдите свойство с именем «Generate Debug Symbols» (или подобное) и убедитесь, что оно ПРОВЕРЕНО (также известно, как ON). Кроме того, вы можете попробовать найти (также в Target >> Get Info) свойство под названием «Debug Information Format» и установить для него значение «Dwarf with dsym file».
В разделе «Цель >> Получить информацию» есть ряд других свойств, которые могут повлиять на вас. Найдите такие вещи, как оптимизация или сжатие кода, и выключите эти вещи (я предполагаю, что вы работаете в режиме отладки, так что это неплохой совет). Кроме того, обратите внимание на такие вещи, как символы снятия изоляции, и убедитесь, что он также выключен. Например, для параметра «Удалить связанный продукт» должно быть установлено значение «Нет» для цели отладки.
В Xcode 7 у меня сработало:
1) Убедитесь, что цель -> схема -> Выполнить - находится в режиме отладки (был Release)
2) Обязательно установите флажок «Отладка исполняемого файла», см. Ниже:
У меня была такая же проблема (снова). После троекратной проверки «Лениво загружать символы» и удаления флагов генерации отладочной информации я сделал следующее:
Вы можете выполнить ту же задачу в Finder, щелкнув правой кнопкой мыши пакет .xcodeproj и выбрав «Показать содержимое пакета».
Когда я перезапустил Xcode, все мои окна были сброшены в положение по умолчанию и т.д., но точки останова работали!
Другой причиной
Установите DeploymentPostprocessing
NO в BuildSettings - подробности здесь
Коротко -
Активация этого параметра означает, что двоичные файлы должны быть удалены, а для информации о режиме файла, владельце и группе должны быть установлены стандартные значения. [DEPLOYMENT_POSTPROCESSING]
YES
только у меня, subproject
а затем точки останова не работали subprojects
. И после настройки NO
все было идеально!
См. Этот пост: Точки останова не работают в Xcode? . Возможно, вы нажимаете «Выполнить» вместо «Отладка», и в этом случае ваша программа не запускается с помощью gdb, и в этом случае вы не можете ожидать, что точки останова сработают!
Одним из возможных решений для этого может быть .... перейдите в Продукт> Схема> Изменить схему> .. В разделе «Выполнить»> «Информация»> «Исполняемый файл» установите флажок «Отладка исполняемого файла».
Пришел на эту страницу с той же проблемой (код C в Xcode 6 не останавливается на точках останова), и ни одно из вышеперечисленных решений не сработало (проект был практически из коробки, с точки зрения настроек, так что мало шансов, что какие-либо настройки отладчика будут установить неверное значение) ...
Потратив некоторое время на устранение проблемы, я наконец выяснил виновника (для моего кода):
Xcode (/ LLVM) не любит #line
команды препроцессора в стиле Bison .
Их удаление устранило проблему (отладчик остановился на моих точках останова).
У меня много проблем с точками останова в Xcode (2.4.1). Я использую проект, который просто содержит другие проекты (например, решение в Visual Studio). Иногда я замечаю, что точки останова вообще не работают, если в стартовом проекте не установлена хотя бы одна точка останова (то есть та, которая содержит точку входа для моего кода). Если единственные точки останова находятся в проектах «нижнего уровня», они просто игнорируются.
Также кажется, что Xcode правильно обрабатывает операции с точкой останова, только если вы действуете на точку останова, когда находитесь в проекте, который содержит исходную строку, на которой установлена точка останова.
Если я попытаюсь удалить или отключить точки останова через другой проект, действие иногда не вступает в силу, даже если отладчик указывает, что это так. Так что я обнаружу, что ломаюсь на отключенных точках останова или на (теперь невидимой) точке останова, которую я удалил ранее.
У меня не работали точки останова, а затем я выполнил Build / Clean All Targets, чтобы они снова заработали.
Я думаю, проблема может заключаться в несовместимости версий устройства и Xcode. У меня возникает эта проблема при попытке отладки на моем iPhone 4S под управлением iOS 5.0.1. Я все еще использую Xcode 3.2.5. Я получил символы с телефона, выбрав «использовать это устройство для разработки» в окне Организатора. Однако этот телефон отказывается от точки останова. Мой старый 3GS будет иметь точку останова, тот же проект Xcode, те же настройки ... просто другое устройство, работающее под управлением iOS 4.0. Я предполагаю, что это ошибка Xcode в 3.2.5, поскольку у меня есть символы. Перепробовав все решения, опубликованные здесь до сих пор, я решил, что решение моей проблемы состоит в том, чтобы продолжить и перейти на XCode 4. Возможно, вы не сможете эффективно отлаживать, если ваш базовый SDK не ниже уровня системы, на которой выполняется отладка. Может это очевидно - может кто-нибудь подтвердить?
Изменить: я обновлю, когда смогу подтвердить, что это правда.
Удаление моей папки Build решило проблему для меня.
То же самое случилось со мной в XCode 6.3.1. Мне удалось это исправить:
После внесения этого изменения я установил параметры « Переместить точки останова» обратно в проект и снял флажок « Совместное использование точек останова» , и все еще работал.
Я точно не знаю почему, но это возвращает мои точки останова.
В Xcode 4
- Product menu > Manage Schemes
- Select the scheme thats having debugging problems (if only one choose that)
- Click Edit button at bottom
- Edit Scheme dialog appears
- in left panel click on Run APPNAME.app
- on Right hand panel make sure youre on INFO tab
- look for drop down DEBUGGER:
- someone had set this to None
- set to LLDB if this is your preferred debugger
- can also change BUILD CONFIGURATION drop down to Debug
- but I have other targets set to AdHoc which debug fine once Debugger is set
Если ничего не помогает, вместо точки останова можно вызвать следующую функцию:
void BreakPoint(void) {
int i=1;
#if !__OPTIMIZE__
printf("Code is waiting; hit pause to see.\n");
while(i);
#endif
}
Чтобы продолжить, вручную установите i в ноль, затем нажмите кнопку возобновления.
Я пробовал все вышеперечисленное, но для меня только один раз отключение точек останова отладки и их активация сработали.
При установке точки останова щелкните правой кнопкой мыши, и вы должны получить несколько вариантов того, как обрабатывается точка останова (переменные журнала и продолжить, приостановить выполнение и т. Д.)
Также убедитесь, что в настройках отладки не выбран параметр «Загружать символы лениво».
(Относится к Xcode 3.1, не уверен в прошлых / будущих версиях)
Также убедитесь, что на устройстве не установлен дистрибутив приложения из магазина AppStore.
Еще одна вещь, которую следует проверить, - это то, что если у вас есть файл plist «Права» для вашего режима отладки (возможно, потому, что вы делаете что-то с Keychain), убедитесь, что в файле plist есть строка «get-task-allow» = YES. Без него отладка и логирование будут нарушены.
Похоже, что для точек останова в Xcode есть 3 состояния. Если вы нажмете на них, они перейдут к другим настройкам. Темно-синий включен, серый цвет отключен, и я иногда видел бледно-синий цвет, который требовал, чтобы я снова щелкнул точку останова, чтобы она перешла к темно-синему цвету.
Кроме этого, убедитесь, что вы запускаете его с помощью команды отладки, а не команды запуска. Вы можете сделать это, нажав option + command + return или выбрав опцию Go (отладка) в меню запуска.
У меня есть Xcode 3.2.3 SDK 4.1. Точки останова не работают случайным образом. Я обнаружил, что если вы очистите сборку и используете команду touch под сборкой, они снова заработают.
Вот одна непонятная проблема, с которой я столкнулся: если вы работаете над общей библиотекой (или надстройкой), ваши точки останова станут желтыми при запуске, что может привести к разочарованию в клавиатуре и прерыванию процесса отладки. Что ж, не делай этого! Символы не будут загружены, пока приложение не загрузит библиотеку, после чего точки останова станут действительными. Я столкнулся с этой проблемой с плагином для браузера ... BP были отключены, пока я не перешел на страницу, на которой был создан мой плагин.