После получения информации о ячейке выдается EXC_BAD_ACCESS - PullRequest
2 голосов
/ 16 декабря 2011

Я использую CellStumbler для получения идентификатора ячейки iPhone, кода зоны и другой информации.

После вызова getInfo я получаю EXC_BAD_ACCESS и не могу понять, почему. Это все недокументированные частные функции, но наверняка кто-то может помочь. Проблема не связана ни с одной из строк в функции, это происходит только после ее запуска.

Cell Stumbler

Я знаю, что это не одобрено в App Store.

  int cellcount;
_CTServerConnectionCellMonitorGetCellCount(&t1,sc,&cellcount);

printf("Cell count: %x\n",cellcount);

printf("Size = %lx\n", sizeof(struct CellInfo));

unsigned char *a=malloc(sizeof(struct CellInfo));

for(b=0;b<cellcount;b++)
{       
    _CTServerConnectionCellMonitorGetCellInfo(&t1,sc,b,a); memcpy(&cellinfo,a,sizeof(struct CellInfo));
    printf("Cell Site: %d, MNC: %d, ",b,cellinfo.servingmnc);
    printf("Location: %d, Cell ID: %d, Station: %d, ",cellinfo.location, cellinfo.cellid, cellinfo.station);
    printf("Freq: %d, RxLevel: %d, ", cellinfo.freq, cellinfo.rxlevel);
    printf("C1: %d, C2: %d\n", cellinfo.c1, cellinfo.c2);
}
if(a) free(a);

Это функция getCellInfo, доступная в проекте CellStumbler выше. Ошибка возникает после того, как она вызывается, но не обязательно в этой функции, только после, как будто последующий эффект запуска - это некоторое искажение памяти.

1 Ответ

2 голосов
/ 19 декабря 2011

Я временно решил эту проблему, удалив цикл for и запустив _CTServerConnectionCellMonitorGetCellInfo один раз.

...