2015-09-16 2 views
0

Когда у меня возникла проблема с Xcode, мне сказали отладить мой код с точкой останова. Пройдя через код, нажмите эту маленькую стрелку над секцией консоли, чтобы перейти к следующей строке. Это отлично работает, например, когда я помещаю точку останова на строку 150 в свой код, я могу затем «по» переменной и найти ее значения.Xcode: точки останова и странные экраны

enter image description here

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

enter image description here

Wtf делает это значит, и что если что я должен делать с этим переходом Клингонской мой Xcode проект, видимо, перехватил?

+0

Нажмите значок «выйти». Это сборка (скомпилированный) код для кода, для которого у вас нет исходного кода. – rmaddy

+0

«цифры и буквы и вещи не делают даже отдаленного смысла». Они могут не иметь смысла для вас. Но есть много людей, к которым они имеют смысл. Не будьте так судите! :) – matt

+0

Я понимаю. Но если кто-то опубликует ответ ниже, возможно, я тоже смогу стать волшебником умных, подобных этим людям. –

ответ

1

код вы пишете на языке, таких как Objective-C или Swift компилируется в machine code для выполнения на данном процессоре - x86 для симулятора или ARM для устройства IOS - В этом случае я бы предположил, вы работаете на симуляторе.

Инструкции машинного кода выполняют весьма осторожные операции. Для примера c=a+b переведет в нечто вроде выборки а из памяти выборки б из памяти добавить и б сохранить результат в память с

При пошаговом выполнении кода в отладчике, это только останавливается в каждой строке вашей программы, даже если на этом шаге может быть выполнено несколько инструкций машинного кода.

Что вы видите, это assembly code для функции фреймворка, которая была вызвана, потому что вы «вошли в» функцию, в которой Xcode не имеет источника, поэтому он должен показывать каждую операцию низкого уровня.

Вы можете использовать кнопку «выйти», чтобы вернуться к своему коду и использовать кнопку «шаг», а не «наступать», чтобы избежать этого.

Линия, выделенная в вашем отладчике, по существу проверяет значение %alregister (регистр представляет собой небольшую часть памяти в чипе ЦП). Следующая команда перейдет в другую часть программы, если результатом является то, что %al равен 0.

0

Посмотрите на левую сторону и нажмите команду перед выбранным кодом. Это, как правило, показывает вам последний бит кода, который вы написали до того, как столкнулась точка останова.

В приведенном ниже примере 0 находится точка останова, а 1 - последний бит кода, который я написал.

.

Смежные вопросы