2012-05-02 3 views
2

У меня есть проект Xcode 4.3.2 iOS 5.1, который компилируется и работает отлично, когда моя конфигурация сборки использует GCC_OPTIMIZATION_LEVEL of None [-O0], но с ошибкой EXC_BAD_ACCESS при использовании любого другого уровня оптимизации с ошибкой EXC_BAD_ACCESS. Мой проект имеет GCC_VERSION, установленный для Apple LLVM 3.1 (по умолчанию). Это указывает на проблему с моим кодом?Xcode LLVM 3.1 и GCC_OPTIMIZATION_LEVEL

+0

С помощью обеих символов оптимизации * и * можно скомпилировать символы, чтобы вы могли отлаживать программу и получать представление о том, где находится проблема. – trojanfoe

+0

Проблема заключается в прямом разделе кода при доступе к (неатомическому, сильному) свойству, которому ранее присвоено значение в коде. Это похоже на то, что ARC не сохраняет свойство - но только при включении оптимизации. – Erik

ответ

0

Чаще всего это указывает на проблему с вашим кодом. Как:

  • Доступ к уже высвобождены памяти
  • чтение или запись памяти вне границ выделенного массива
  • с использованием не инициализированы переменные или члены класса
  • и многие, многие другие ...

В редких случаях бывает так, что такая авария оказывается ошибкой компилятора. Но это редко. Чаще всего это проблема с вашим кодом.

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

+0

Да, в моем коде была проблема. Я сохранил блок в словаре для последующего использования (после уничтожения области, в которой он был создан), не копируя его в первую очередь. Оглядываясь назад, я удивлен, что он работал даже без оптимизаций. – Erik

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