Подтвердить что ты не робот

Почему мои контрольные точки не работают?

У меня установлены точки останова, но Xcode, похоже, игнорирует их.

4b9b3361

Ответ 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]

enter image description here

Ответ 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 и выше убедитесь, что кнопка состояния точки останова активирована (кнопка с синей стрелкой):

enter image description here

Ответ 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

Вы можете активировать/отключить точки останова в выпадающем меню enter image description here

Ответ 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 в сборке, они работают снова.