Чтобы ответить на ваш короткий вопрос: EXC_BAD_ACCESS означает недопустимый доступ к памяти. Это означает, что программа пыталась использовать область памяти вне своего виртуального адресного пространства (грубо говоря, область памяти, которую она запросила у ядра ОС). Это то, что люди Unix обычно называют «ошибкой сегментации» (segfault), и то, что люди Windows обычно называют «нарушением доступа» (AV) или «общей ошибкой защиты» (GPF). (Да, вы, наверное, уже знали это. Но я просто проверяю ...)
В отчете о сбое сказано, на какой адрес памяти ссылались? Включает ли отчет стек вызовов или дамп ядра? Все три очень полезны, особенно дамп ядра, поскольку вы можете загрузить его в отладчик и перезапустить программу прямо с точки исключения. И если адрес памяти кажется совершенно неработоспособным (в верхней половине виртуального адреса или очень близко к 0, тогда у вас есть хорошая подсказка, в чем заключается проблема).