Точки останова Xcode сдвинуты во время выполнения

Я искал час или около того здесь и в Google и не могу найти ответ о том, как правильные точки останова смещаются во время выполнения. Я переустановил Xcode (3.2.2), застраховал ленивую загрузку, не оптимизировал целевые настройки и все остальные целевые настройки, которые могут вызвать проблему. Я также уничтожил все файлы пользовательских проектов (кроме основного файла .pro), и, похоже, это ничего не исправляет. Да, я работаю с точками останова. Да, я делал чистые сборки.

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

Это сводит меня с ума.


person tgunr    schedule 28.02.2010    source источник


Ответы (3)


У меня была аналогичная проблема (странно сдвинутые точки останова), но моя проблема заключалась в том, что у меня был неправильный целевой набор, поэтому код, который я модифицировал и устанавливал точки останова, даже не перестраивался! Но исполняемый файл по-прежнему будет работать, используя старый код, что приведет к странному смещению точек останова.

person software evolved    schedule 02.05.2011

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

person Paul R    schedule 28.02.2010
comment
Нет, я прошел и проверил окончания строк, все они представляют собой текстовые файлы Unix, UTF-8. Проблема все еще существует. - person tgunr; 02.03.2010
comment
Просто для уточнения: когда я говорю о несовместимых окончаниях строк, я имею в виду, что может возникнуть ситуация, когда у вас есть смесь разных окончаний строк внутри данного исходного файла. Я получаю это все время, например. где коллеги использовали текстовый редактор Windows для внесения изменений в файл с окончаниями строк Unix. Я не говорю, что это то, что у вас обязательно есть, но я просто хотел убедиться, что ясно дал понять точный характер проблемы. - person Paul R; 02.03.2010
comment
Да, я понял, что вы имели в виду, и действительно позаботился о том, чтобы окончания строк были последовательными. Я использую только Xcode и Emacs в своем исходном коде, и никто другой не возился с этим кодом. Я до сих пор еще не отследил проблему. Кажется, что кадры стека более высокого уровня указывают на правильные места, только непосредственный и предыдущий кадр указывают неправильно. - person tgunr; 02.03.2010
comment
ОК, попробуйте еще одну вещь: переключитесь с отладочной информации DWARF на Stabs (или наоборот). - person Paul R; 02.03.2010
comment
Проблема заключалась в том, что код оптимизировался в настройках целевой сборки. У меня была отключена оптимизация на уровне проекта, но я не заметил целевую настройку. - person tgunr; 09.06.2010

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

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

person Oliver Pearmain    schedule 28.02.2012