У меня установлены точки останова, но Xcode, похоже, игнорирует их.
Почему мои контрольные точки не работают?
Ответ 1
Прежде всего, я согласен на 100% с более ранними людьми, которые сказали, что он имеет значение ВЫКЛ Load Symbols Lazily
.
У меня есть еще две вещи, которые нужно добавить.
(Мое первое предложение кажется очевидным, но в первый раз, когда кто-то предложил его мне, моя реакция шла следующим образом: "Давай, пожалуйста, ты действительно думаешь, что я не знаю лучше... о." )
-
Убедитесь, что вы случайно не установили "Конфигурация Active Build" на "Release".
-
В разделе "Цели" на графическом дереве вашего проекта щелкните правой кнопкой мыши по вашей цели и сделайте "Получить информацию". Найдите свойство с именем "Generate Debug Symbols" (или аналогичным) и убедитесь, что это CHECKED (aka ON). Кроме того, вы можете попробовать найти (также в Target → Get Info) свойство "Отладочный информационный формат" и установить его в "Dwarf with dsym file".
В разделе Target → Get Info есть ряд других свойств, которые могут повлиять на вас. Ищите такие вещи, как оптимизация или сжатие кода, и отключите этот материал (я полагаю, вы работаете в режиме отладки, так что это не плохой совет). Кроме того, ищите вещи, такие как снятие символов и убедитесь, что они также выключены. Например, для объекта "Отладка" должно быть установлено значение "Нет связанного с разделителем продукта".
Ответ 2
В Xcode 7 для меня работало:
1) Убедитесь, что target → scheme → Run - находится в режиме отладки (был выпущен)
2) Обязательно проверьте параметр "Отладка исполняемого файла" ниже:
Ответ 3
Перейдите к настройкам Xcode Debugging. Убедитесь, что "Load Symbols lazily" НЕ выбрано.
Ответ 4
У меня была такая же проблема (опять же). После трехкратной проверки флажков "Загружать символы лениво" и дезадаптации флагов формирования информации я сделал следующее:
- quit Xcode
- открыть окно терминала и cd в каталог проекта
- cd в каталог .xcodeproj
- удалить все, кроме файла .pbxproj(у меня были frank.mode1v3 и frank.pbxuser)
Вы можете выполнить ту же задачу в finder, щелкнув правой кнопкой мыши/щелкнув по узлу .xcodeproj и выбрав "Показать содержимое пакета".
Когда я перезапустил Xcode, все мои окна имели reset по умолчанию и т.д., но контрольные точки работали!
Ответ 5
Для Xcode 4.x: Перейти к продукту > Отладка рабочего процесса и снимите флажок "Показать дизассемблирование при отладке".
Для Xcode 5.x Goto Debug > Отладка рабочего процесса и снимите флажок "Показать дизассемблирование при отладке".
Ответ 6
Смотрите это сообщение: Точки останова, не работающие в Xcode?. Вы можете нажать "Выполнить" вместо "Отладка", и в этом случае ваша программа не будет запущена с помощью gdb, и в этом случае вы не можете ожидать, что точки останова будут работать!
Ответ 7
Другой причиной
Установите для DeploymentPostprocessing
значение NO в BuildSettings - подробности здесь
Короче -
Активация этого параметра означает, что двоичные файлы должны быть удалены, а режим файла, владелец и информация о группе должны быть установлены в стандартные значения. [DEPLOYMENT_POSTPROCESSING]
Ответ 8
Для Xcode 4:
go Product -> Debug -> Activate Breakpoints
Ответ 9
Пришел к этой странице с той же проблемой (код C в Xcode 6 не останавливался на контрольных точках), и ни одно из вышеперечисленных решений не было (проект был практически несовместим с настройками, поэтому мало шансов для любой из настройки отладчика будут установлены на неправильное значение)...
Потеряв некоторое время, уменьшив проблему, я, наконец, понял, что виновник (для моего кода):
Xcode (/LLVM) не любит команды препроцессора стиля #line
Bison.
Удаление исправленных проблем (отладчик остановлен на моих контрольных точках).
Ответ 10
Решение для меня с XCode 9.4.1 (не остановилось ни на одной точке останова):
Под build Target → Build Settings → Optimization Level: переключено с "Оптимизация по скорости" → "Без оптимизации" (теперь медленнее, но работает)
Ответ 11
Это привело меня в Xcode 9 на половину разочаровывающего дня. В итоге это была простая настройка отладки.
Перейдите в Debug> Debug Workflow и убедитесь, что "Всегда показывать разборку" отключено. Просто как тот. :(
Ответ 12
У меня много проблем с точками останова в Xcode (2.4.1). Я использую проект, который просто содержит другие проекты (например, решение в Visual Studio). Иногда я нахожу, что точки останова не работают вообще, если в стартовом проекте нет хотя бы одной точки останова (т.е. Той, которая содержит точку входа для моего кода). Если единственные точки останова находятся в проектах "нижнего уровня", они просто игнорируются.
Также кажется, что Xcode корректно обрабатывает операции точки останова, если вы действуете на контрольной точке, когда находитесь в проекте, который содержит строку источника, на которой находится точка останова.
Если я попытаюсь удалить или отключить точки останова через другой проект, действие иногда не вступает в силу, даже если отладчик указывает, что он имеет. Поэтому я обнаружил, что ломаю на отключенных контрольных точках или на (теперь невидимой) точке останова, которую я удалил ранее.
Ответ 13
Мои точки останова не работают, а затем выполняются Build/Clean All Targets, чтобы заставить их работать снова.
Ответ 14
Я думаю, что проблема может быть несовместимость между версиями устройства и Xcode. У меня возникла эта проблема при попытке отладки моего iPhone 4S под управлением iOS 5.0.1. Я все еще использую Xcode 3.2.5. Я получил символы из телефонной трубки, выбрав "использовать это устройство для разработки" в окне "Организатор". Однако этот телефон отказывается от прерывания. Мой старый 3GS будет точкой останова, тем же проектом Xcode, теми же настройками... просто другим устройством и работает под управлением iOS 4.0. Я предполагаю, что это ошибка Xcode в 3.2.5, так как у меня есть символы. Пробовав все решения, опубликованные здесь до сих пор, я решил, что решение моей проблемы - перейти к обновлению до XCode 4. Возможно, вы не можете эффективно отлаживать, если ваш базовый SDK не меньше, чем система для отладки. Может быть, это очевидно - может ли кто-нибудь подтвердить?
Изменить: я обновлю, когда смогу подтвердить, что это правда.
Ответ 15
Удаление моей папки сборки решило проблему для меня.
Ответ 16
Для этого, а также для Xcode 6 и выше убедитесь, что кнопка состояния точки останова активирована (кнопка с синей стрелкой):
Ответ 17
Это может быть одной из возможных причин того, что это произошло.... перейдите в Product> Scheme> Edit схема>.. Под Run> info> Проверка исполняемого файла "Отладка исполняемого файла".
Ответ 18
В 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
Ответ 19
Я нашел проблему. Каким-то образом "Show Disassembly when debugging" был включен в моем XCode, который создает эту проблему. Когда я отключил его, весь мой отладчик остановился в моем исходном коде.
Вы можете найти его под: Product->Debug Workflow->Show Disassembly
при отладке.
Ответ 20
Вы можете активировать/отключить точки останова в выпадающем меню
Ответ 21
Если все остальное не удается, вместо точки останова вы можете вызвать следующую функцию:
void BreakPoint(void) {
int i=1;
#if !__OPTIMIZE__
printf("Code is waiting; hit pause to see.\n");
while(i);
#endif
}
Чтобы возобновить, вручную установите я на ноль, затем нажмите кнопку возобновления.
Ответ 22
В XCode 6.3.1 произошло то же самое. Мне удалось это исправить:
- Переход к Просмотр- > Навигаторы- > Показать отладочные навигаторы
- Щелкните правой кнопкой мыши в корне проекта → Переместить точки останова (если выбран параметр "Пользователь" )
- (Я также выбрал опцию разделять точки останова, хотя я не уверен, что это необходимо).
После выполнения этого изменения я устанавливаю опции Move breakpoints обратно в проект и не выбираю опцию Breakpoints Share и все еще работает.
Я точно не знаю, почему, но это возвращает мои контрольные точки.
Ответ 23
Я пробовал все перечисленные выше вещи, но только один раз отключил отладочные точки останова, а затем активировал их.
Ответ 24
При настройке точки останова щелкните правой кнопкой мыши и вы получите несколько опций о том, как обрабатывается точка останова (лог-вары и продолжить, приостановить выполнение и т.д.)
Также убедитесь, что в настройках отладки не выбрано "Load Symbols lazily".
(относится к Xcode 3.1, не уверен в прошлых/будущих версиях)
Ответ 25
Я немного не делал Xcode, но рекомендую отключить "Zerolink" и "Load Symbols Lazily"; что устранит большинство проблем. В любом случае Зеролинк - мерзость.
Ответ 26
Кажется, что есть 3 состояния для контрольных точек в Xcode. Если вы нажмете на них, они пройдут разные настройки. Синий цвет включен, выделение серым цветом отключено, и я иногда видел бледно-голубые, что требовало, чтобы я снова нажал на точку останова, чтобы перейти к темно-синему цвету.
Кроме этого, убедитесь, что вы запускаете его с помощью команды debug, а не команды run. Вы можете сделать это, либо нажав опцию + команду + вернуть, либо вариант Go (debug) из меню прогона.
Ответ 27
Я считаю, что проект также может быть поврежден в отношении точек останова. Например, у меня есть проект, который НЕ БУДЕТ ломаться над любыми точками останова, которые он помнит из предыдущего сеанса. Я впервые написал об этом здесь
Ответ 28
Также убедитесь, что приложение AppStore приложения также не установлено на устройстве.
Ответ 29
Еще одна вещь, которую нужно проверить, это то, что если у вас есть файл plist "Entitlements" для вашего режима отладки (возможно, из-за того, что вы делаете материал с помощью Keychain), убедитесь, что в файле plist есть "get-task-allow" = ДА строка. Без него отладка и ведение журнала будут нарушены.
Ответ 30
У меня есть Xcode 3.2.3 SDK 4.1. Точки останова будут прерываться случайным образом. Я нашел, если вы очищаете сборку и используете команду touch в сборке, они работают снова.