2010-12-29 4 views
0

Я щелкнул равно, и он запускает весь код и достигает конца в ясном состоянии, запускает его и добирается до конца и NSLogs его. На данный момент ему больше нечего делать .... ожидайте, чтобы я получил сообщение об ошибке без причины, любая идея почему? Спасибо!Получение ошибки без причины Я могу понять

-(IBAction) clickEquals: (id) sender { 
    // more stuff is actually insider here, omitted for brevity. 
    [self clear]; 
} 

- (void)clear { 
    // more stuff is actually insider here, omitted for brevity. 
    [accumulator clear]; 
    NSLog(@"clear - done"); 
} 

Консоль

2010-12-29 15: 24: 38,328 приложение [6150: 207] ясно - сделано

приложение (6150,0xa01e7540) таНос: * * * ошибка для объекта 0x7146840: указатель будучи освобожден не был выделен * * * установить контрольную точку в malloc_error_break для отладки

(GDB)

+2

Трудно сказать из фрагментов кода, которые вы вставили. Вероятно, вы получите точные ответы, если сможете предоставить минимальный тестовый пример, который воспроизводит ошибку. –

+0

Знаете ли вы, что сообщение об ошибке означает вообще? – michaellindahl

ответ

0

приложение (6150,0xa01e7540) таНос: * * * ошибка для объекта 0x7146840: указатель освобождения не было выделено * * * установить точки останова в malloc_error_break отладки

Ваша программа вызвала освобождение, которое никогда не выделялось. Скорее всего, это связано с тем, что указатель мусора был передан в free(), может быть, потому, что вы забыли инициализировать что-то или, может быть, потому, что ваше приложение уничтожает память.

В любом случае следуйте инструкциям и установите контрольную точку на malloc_error_break и разместите обратную линию.

Скорее всего, причина в // больше материала на самом деле здесь инсайдера, опущено для краткости. или в методе [accumulator clear].

+0

Спасибо! Найденная ошибка, я автореализую объект, для которого я никогда не выделял место. Для справок в будущем: где я могу поместить точку останова? Я не признаю malloc_error_break. – michaellindahl

+0

Вы бы добавили символическую точку останова; либо в окне точки останова Xcode, либо путем ввода 'b malloc_error_break' в окне терминала GDB. – bbum

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