Дополнительно
Что'о смысле исключений код "и EXC_I386_GPFLT и"?
Что'о смысле исключений код EXC_I386_GPFLT
?
Ее смысл в зависимости от ситуации?
В таком случае, я'м говоря exc_bad_access и типа исключение с исключением кода EXC_I386_GPFLT
Программа разработана в Xcode 5.0.1, общаясь с cblas_zgemm()` библиотеки Блас.(Ну, я предполагаю, что это не'т материи...)
Большое спасибо!
111
9
EXC_I386_GPFLT, безусловно, со ссылкой на "общем я виновата защита&;, который является х86's путь, чтобы сказать вам, что "вы сделали то, что вам не позволено делать то". Это, как правило, не'Т означает, что вы получаете доступ к памяти границы, но это может быть, что ваш код будет в ауте и причиной плохой код/данные, которые будут использоваться в пути, который делает для защиты нарушение какое-то.
К сожалению это может быть трудно выяснить точно, в чем проблема Без больше контекста, есть 27 различных причин, перечисленных в моем amd64 на программиста's руководство, Том 2 с 2005 - по всем признакам, вполне вероятно, что спустя 8 лет добавил бы еще несколько.
Если это 64-разрядная система, вероятный сценарий заключается в том, что ваш код использует и"нестандартный указатель на" - это означает, что 64-битный адрес формируется таким образом, что старшие 16 бит адреса не'т все копии, лучшие из 48 битов (другими словами, топ-16 бит адреса должен быть 0 или все 1, на основе битовых чуть ниже 16 бит). Это правило находится в месте, чтобы гарантировать, что архитектура может "и смело расширить число действительных битов в адресе и quot диапазона;. Это означает, что код находится либо заменяя некоторые данные указателя с другими делами, или ухожу в аут при чтении какое-то значение указателя.
Еще одной вероятной причины невыровненного доступа с реестра МРЗ - другими словами, чтение 16-байтный регистр ГСП с адреса, что это'Т 16-байтовое выравнивание.
Есть, как я уже сказал, много других возможных причин, но большинство из них подразумевают все, что "нормальный" и код не'т делать в 32 - или 64-разрядной операционной системы (например, загрузки сегмента регистров с поврежденных селектор индекс или написав МСР'ы (модель-специфичных регистров)).
Вы часто можете получить информацию из заголовка файлов. Например:
Итак, это'с общей ошибке защиты (как его имя предполагает, во всяком случае). Погугли "В общем я защита для i386 вина&; дает много просмотров, но это выглядит интересные:
Что
13
соответствует тому, что мы видели в заголовочных файлах, так что, похоже, то же самое. Однако от прикладного программиста's не точка зрения, это просто означает, что мы'вэ ссылки на память, мы должны'т быть, и это'ы не'т действительно важно, как это'ы, реализованные на аппаратном уровне.Для отладки и найти источник: Включить зомби для приложения (схемы продукта) и запустить инструменты, выбрать зомби. Запустить приложение в Xcode Затем перейдите к инструменты начать запись. Вернуться в ваше приложение и попробуйте создать ошибку. Инструменты должны обнаружить плохое слово (зомби), если он есть.
Надеюсь, что это помогает!
Я удивился, почему это появилось в моей модульные тесты.
Я добавил объявление метода в протокол который включал
бросает
; но испортите способ вовсе'т даже использовать в конкретном тесте. Включение зомби в тесте звучал как-то слишком хлопотно.Получается ⌘K чистых сделали свое дело. Я'm всегда flabberghasted, когда это решает актуальные проблемы.
У меня было аналогичное исключение в Swift 4.2. Я потратил около получаса пытаясь найти ошибку в моем коде, но проблема ушла после закрытия Xcode и удаления данных папок. Вот это сочетание:
РМ -РФ ~/библиотеки/разработчик/в Xcode/DerivedData
В моем случае ошибка была брошена в Xcode при запуске приложения в симуляторе iOS. Пока я не могу ответить на конкретный вопрос "Что значит ошибке", Я могу сказать, что помогло мне, может это также поможет другим.
Решение для меня было, чтобы Стереть контент и настройки в симуляторе и в папку чистую сборку...` в Xcode.
Это случилось со мной, потому что в Xcode не'т, кажется, нравится мне, используя то же имя переменной в двух разных классах (что соответствует один и тот же протокол, если это имеет значение, хотя имя переменной имеет никакого отношения, связанные в любой протокол). Я просто переименовал свою новую переменную.
Мне пришлось выйти на сеттеров, где это было сбоев, чтобы увидеть его, во время отладки. Этот ответ относится к iOS
Если ошибка внутри закрытия, что определяет " я " как "бесхозный", вы можете быть ограничены в том, что вы можете открыть и получить этот код ошибки в определенных ситуациях. Особенно во время отладки. Если это дело для вас, попробуйте изменить
[бесхозный "я"] " на " [слабые личности]
Я получил эту ошибку, при этом:
Он ушел, когда я вернулась с: