Значение Xcode намекает, когда происходят сбои - PullRequest
4 голосов
/ 08 декабря 2011

1.Когда мое приложение падает, и в окне консоли нет сообщения, Xcode показывает зеленую линию с подписью EXC_BAD_ACCESS или PROGRAM RECEIVED SIGNAL SIGABRT в редакторе кода.Вопрос заключается в следующем: всегда ли Xcode помещает эту зеленую линию в строку кода, где находится ошибка?Если я увижу эту зеленую линию в строке

[myObject myMethod];

, могу ли я быть уверен, что ошибку следует искать внутри функции myMethod?Или, может быть, это может означать что-то еще?

2. Иногда эта зеленая линия помещается в файл main.m в строке

int retVal = UIApplicationMain(argc, argv, nil, nil);

Знаете ли вы, что конкретно касается размещения подсказки там?Что это значит?

3. Также иногда происходит самое странное: Xcode показывает мне файл с кодом ассемблера и зеленую линию внутри этого кода.Зачем?Что я должен понять, когда увижу это?

4.Если я неоднократно делаю следующее: войдите в экран, затем что-то сделайте, затем выйдите из экрана - мое приложение вылетает.Может произойти сбой во второй или седьмой раз.Каковы наиболее распространенные причины такого сбоя?Утечка памяти?Но Analyze говорит мне, что в моем приложении нет утечек.Как вы думаете, это может быть?

Ответы [ 3 ]

1 голос
/ 08 декабря 2011

Простой ответ на пункт 4: наиболее распространенная причина сбоя при доступе к освобожденной / перезаписанной памяти.

1 голос
/ 08 декабря 2011

Как я уже говорил в другом посте:

В XCode перейдите в меню «Редактировать схему», выберите текущую конфигурацию и добавьте «NSZombieEnabled», как показано на рисунке ниже, когда ваши приложения аварийно завершают работу, это даст вам дополнительную информацию о сбое, которая должна помочь вам отладить ее.

enter image description here

Обратите внимание, что после завершения отладки приложения удалите команду NSZombieEnabled, так как она влияет на производительность приложения

1 голос
/ 08 декабря 2011

Вы можете проверить наличие NSZombies или отладить любые ссылки на память, которые можно найти в сообщении об ошибке.

Здесь вы можете найти некоторые подсказки Отладка iPhone Xcode

Относительно (3) Я не думаю, что существует способ интерпретации этого кода сборки.

...