XCode 4 iOS — Отладчик показывает байт-код вместо того, чтобы сообщать мне, в какой строке произошло сбой моего приложения

#objective-c #ios #xcode #xcode4

#objective-c #iOS #xcode #xcode4

Вопрос:

Когда мое приложение выходит из строя, вместо того, чтобы видеть, какая строка вызвала сбой, я вижу окно, в котором печатается весь нечитаемый байт-код. Раньше я мог видеть, на какой строке оно произошло сбой, но, должно быть, я что-то изменил. Вот снимок экрана: Скриншот

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

Комментарии:

1. Я пока не нашел ответа, но я потратил кучу времени, прочесывая Интернет, пытаясь разобраться в этом самостоятельно, без какой-либо удачи. У меня уже есть точка останова исключения, но почему я не могу просто посмотреть, в какой строке кода произошло сбой моего приложения?

Ответ №1:

СНИМИТЕфлажок «Показывать разборку при отладке» в меню:

разборка



Обратное приведенному выше; если вы хотите показать дизассемблирование для текущего местоположения отладки, вы можете использовать это выпадающее меню:

разборка 2

Комментарии:

1. Именно то, что мне было нужно! Назначу вознаграждение, когда мне будет разрешено. Большое спасибо!

Ответ №2:

Фактический сбой не обязательно может быть в вашем коде. Отладчик укажет вам на машинную инструкцию, которая вызвала сбой. Это может быть в методе cocoa-touch или вызове ОС, который произошел сбой из-за неверного параметра, который вы передали (неверный указатель является распространенным виновником).

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

Комментарии:

1. 1 для «Это может быть в методе cocoa-touch или вызове ОС, который произошел сбой из-за неверного параметра, который вы передали»