Детали реализации теговых указателей меняются от выпуска к выпуску и от архитектуры к архитектуре.С учетом вышесказанного они на самом деле не похожи на теговые указатели.
Наиболее вероятно, что некоторый фрагмент кода разыменовывается в структуру или объект, который неожиданно имеет значение NULL или nil.
Запустите этот код:
struct bob {
void *a;
void *b;
void *c;
char d[42];
};
int main(int argc, const char * argv[]) {
struct bob *fred = NULL;
fred->d[2] = 'q';
return 0;
}
Вы получите этот сбой (на x86_64): Thread 1: EXC_BAD_ACCESS (code=1, address=0x1a)
То есть он пытается разыменовать через 0x0.Поэтому, скорее всего, у вас есть ссылка на структуру / объект, равная NULL, и ваш код пытается разыменовать переменную элемента или экземпляра, которая смещена на шестнадцатеричные числа, перечисленные вами с самого начала.