Вопрос

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

Это было полезно?

Решение

Прежде всего, я согласен на 100% с предыдущими людьми, которые сказали, что поверните ВЫКЛЮЧЕННЫЙ Load Symbols Lazily.

У меня есть еще две вещи, чтобы добавить.

(Мое первое предложение кажется очевидным, но когда кто-то впервые предложил мне его, моя реакция была примерно такой:«Да ладно, пожалуйста, ты действительно думаешь, что я не знаю лучше…ой.")

  1. Убедитесь, что вы случайно не установили для параметра «Активная конфигурация сборки» значение «Выпуск».

  2. Под «Целями» в графическом отображении вашего проекта щелкните правой кнопкой мыши на цель и сделайте «Получите информацию». Ищите свойство с именем «генерировать символы отладки» (или аналогично) и убедитесь, что оно проверяется (он же включен).Кроме того, вы можете попробовать найти (также в разделе «Цель >> Получить информацию») свойство «Формат отладочной информации» и установить для него значение «Dwarf с файлом dsym».

В разделе «Цель >> Получить информацию» есть ряд других свойств, которые могут вас затронуть.Найдите такие вещи, как оптимизация или сжатие кода, и отключите их (я предполагаю, что вы работаете в режиме отладки, так что это неплохой совет).Кроме того, обратите внимание на такие вещи, как удаление символов, и убедитесь, что этот параметр также ВЫКЛЮЧЕН.Например, для параметра «Удалить связанный продукт» для цели «Отладка» должно быть установлено значение «Нет».

Другие советы

В Xcode 7 у меня сработало следующее:

1) Убедитесь, что цель -> схема -> Выполнить - находится в режиме отладки (был Release)

2) Обязательно установите флажок «Отладка исполняемого файла», см. ниже:

enter image description here

Перейдите к настройкам отладки Xcode.Убедитесь, что параметр «Загружать символы лениво» НЕ выбран.

У меня была такая же проблема (снова).После тройной проверки «Ленивая загрузка символов» и удаления флагов генерации отладочной информации я сделал следующее:

  1. выйти из Xcode
  2. откройте окно терминала и перейдите в каталог проекта
  3. перейдите в каталог .xcodeproj
  4. удалите все, кроме файла .pbxproj (у меня были Frank.mode1v3 и Frank.pbxuser)

Вы можете выполнить ту же задачу в Finder, щелкнув правой кнопкой мыши или опцией .xcodeproj пакет и выбрав «Показать содержимое пакета».

Когда я перезапустил Xcode, все мои окна были сброшены в положение по умолчанию и т. д., но точки останова сработали!

Для Xcode 4.x:Перейдите в «Продукт» > «Рабочий процесс отладки» и снимите флажок «Показывать дизассемблирование при отладке».

Для XCode 5.x Goto Debug> Workflow Debug и Unchect «Разборка шоу при отладке».

Смотрите этот пост: Точки останова не работают в Xcode?.Возможно, вы нажимаете «Выполнить» вместо «Отладки», и в этом случае ваша программа не запускается с помощью GDB, и в этом случае вы не можете ожидать, что точки останова будут работать!

Другой причиной

Набор DeploymentPostprocessing на НЕТ в настройках сборки - подробности здесь

Суммируя -

Активация этого настройки указывает на то, что двоичные файлы должны быть сняты, а режим файла, владелец и информация о группе должна быть установлена ​​на стандартные значения.[DEPLOYMENT_POSTPROCESSING]

enter image description here

Пришел на эту страницу с той же проблемой (код C в Xcode 6 не останавливался на точках останова), и ни одно из вышеперечисленных решений не сработало (с точки зрения настроек проект был практически готовым, поэтому вероятность того, что какие-либо настройки отладчика сработают, была мала). установлено неправильное значение)...

Потратив немало времени на устранение проблемы, я наконец выяснил виновника (для моего кода):

Xcode (/LLVM) не любит стиль Bison. #line команды препроцессора.

Их удаление решило проблему (отладчик остановился на моих точках останова).

Для Xcode 4:

go Product -> Debug ->  Activate Breakpoints

Это заставило меня провести в Xcode 9 половину разочаровывающего дня.В итоге это была простая настройка отладки.

Перейдите «Отладка» > «Рабочий процесс отладки» и убедитесь, что параметр «Всегда показывать дизассемблирование» отключен.Просто как тот.:(

Решение для меня с XCode 9.4.1 (не останавливалось ни на одной точке останова):

В разделе «Цель сборки» -> «Настройки сборки» -> «Уровень оптимизации»:Переключено с «Оптимизировать по скорости» -> «Без оптимизации» (теперь медленнее, но работает)

У меня много проблем с точками останова в Xcode (2.4.1).Я использую проект, который содержит только другие проекты (например, решение в Visual Studio).Иногда я обнаруживаю, что точки останова вообще не работают, если в стартовом проекте не установлена ​​хотя бы одна точка останова (т.тот, который содержит точку входа для моего кода).Если единственные точки останова находятся в проектах «нижнего уровня», они просто игнорируются.

Также кажется, что Xcode правильно обрабатывает операции с точкой останова только в том случае, если вы действуете на точке останова, когда находитесь в проекте, содержащем исходную строку, на которой находится точка останова.

Если я попытаюсь удалить или отключить точки останова через другой проект, действие иногда не вступит в силу, хотя отладчик указывает, что это произошло.Таким образом, я обнаружу, что ломаюсь на отключенных точках останова или на точке останова (теперь невидимой), которую я удалил ранее.

У меня не работали точки останова, а затем я выполнил сборку/очистку всех целей, чтобы они снова заработали.

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

enter image description here

В Хкоде 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

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

Вы можете найти его здесь: Product->Debug Workflow->Show Disassembly при отладке.

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

Если ничего не помогает, вместо точки останова можно вызвать следующую функцию:

void BreakPoint(void) {
    int i=1;
    #if !__OPTIMIZE__
    printf("Code is waiting; hit pause to see.\n");
    while(i);
    #endif
}

Чтобы возобновить работу, вручную установите i на ноль, а затем нажмите кнопку возобновления.

То же самое произошло со мной в XCode 6.3.1.Мне удалось это исправить:

  • Собираюсь в Вид->Навигаторы->Показать навигаторы отладки
  • Щелкните правой кнопкой мыши в корень проекта -> Переместить точки останова (Если выбран вариант «Пользователь»)
  • (Я также выбрал вариант делиться точками останова, хотя я не уверен, что это необходимо).

После этого изменения я установил Переместить точки останова варианты обратно в проект и отменив выбор Поделиться точками останова вариант и до сих пор работает.

Я точно не знаю, почему, но это возвращает мои точки останова.

Я попробовал все вышеперечисленное, но для меня сработало только один раз деактивация точек останова отладки, а затем их активация.

Это может быть одной из возможных причин, по которой это произойдет .... перейдите к продукту> Схема> «Редактировать схему»> .. в разделе «Запуск»> «Информация»> «Исполняемая проверка" Debug executiveabquebable ".

При настройке точки останова щелкните правой кнопкой мыши, и вы увидите несколько вариантов обработки точки останова (запись переменных и продолжение, приостановка выполнения и т. д.).

Также убедитесь, что в настройках отладки не выбран параметр «Загружать символы лениво».

(Относится к Xcode 3.1, не уверен насчет прошлых/будущих версий)

Также убедитесь, что на устройстве не установлен дистрибутив приложения AppStore.

Еще одна вещь, которую следует проверить, это то, что если у вас есть файл plist «Права» для вашего режима отладки (возможно, потому, что вы делаете что-то с помощью цепочки для ключей), убедитесь, что в этом файле plist есть строка «get-task-allow» = YES.Без него отладка и журналирование будут нарушены.

Кажется, в Xcode есть 3 состояния для точек останова.Если вы нажмете на них, они пройдут различные настройки.Темно-синий включен, серый цвет отключен, и иногда я видел бледно-синий цвет, который требовал от меня еще раз щелкнуть точку останова, чтобы он перешел в темно-синий цвет.

Кроме этого, убедитесь, что вы запускаете его с помощью команды отладки, а не команды запуска.Вы можете сделать это, нажав опцию + команда + возврат или опцию «Перейти» (отладка) в меню «Выполнить».

У меня есть Xcode 3.2.3 SDK 4.1. Точки останова будут работать случайно.Я обнаружил, что если вы очистите сборку и используете сенсорную команду под сборкой, они снова заработают.

Вот неясный вариант, с которым я столкнулся:если вы работаете над общей библиотекой (или плагином), ваши точки останова при запуске станут желтыми, что может привести к тому, что вы в отчаянии стучите по клавиатуре и завершаете процесс отладки.Ну не делай этого!Символы не будут загружены до тех пор, пока приложение не загрузит библиотеку, после чего точки останова станут действительными.Я столкнулся с этой проблемой с плагином браузера...BP были отключены, пока я не перешел на страницу, на которой был создан экземпляр моего плагина.

Я столкнулся с той же проблемой, когда хотел отладить веб-плагин, в котором пользовательским исполняемым файлом был Safari 5.1.Он работал нормально, пока не обновил мой Safari до 5.1 с 4.0.5.Как только я снова установил Safari 4.0.5, все точки останова начали работать без изменения каких-либо настроек Xcode.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top