Xcode 6.4, как использовать точку останова исключения

Я новичок в Xcode, и у меня есть вопрос о том, как отследить исключение плохого доступа.

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

Я понятия не имею, что происходит, и был бы признателен, если бы кто-то мог помочь.


person GalaxyVintage    schedule 15.08.2015    source источник
comment
См. мой ответ здесь.   -  person peacetype    schedule 21.07.2019


Ответы (1)


«Плохой доступ» не имеет ничего общего с исключениями. Это сигнал, а не исключение. Ваша программа останавливается точно в точке неправильного доступа к памяти. Следуйте трассировке стека вверх, чтобы определить код, вызывающий его. Что еще более важно, используйте статический анализатор, чтобы показать вам проблемы, и включите предупреждения, чтобы показать вам еще больше проблем.

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

person gnasher729    schedule 15.08.2015
comment
Спасибо. Итак, откуда взялся вызов функции на пару строк выше плохого доступа? - person GalaxyVintage; 15.08.2015