EXC_BAD_ACCESS при подробном просмотре? - PullRequest
0 голосов
/ 24 декабря 2009

при тестировании adhoc тестер получил отчет о сбое:

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_PROTECTION_FAILURE at 0x2ff00ff4

приложение никогда не падает в симуляторе, но, конечно, в устройстве происходит сбой.

когда я тестирую его с Object alloc, я получаю странное распределение, как на рисунке (см. Последнюю строку на рисунке): alt text http://img705.imageshack.us/img705/9977/picture2wx.png

так что кто-нибудь может сказать, как решить этот доступ к кровати.

Ответы [ 2 ]

1 голос
/ 31 декабря 2009

Помните, что инструменты только документируют то, что они могут видеть; если что-то запустило память до того, как оно началось, а затем освободило бы его во время работы, вы получите отрицательный счет. Это не обязательно относится к вашей проблеме. EXC _ BAD _ ACCESS часто является результатом попытки получить доступ к освобожденному (или никогда не инициализированному) объекту; попробуйте включить NSZombies и затем запустить.

1 голос
/ 31 декабря 2009

Я полагаю, что GeneralBlock-X относится к блоку памяти, выделенному с malloc(); другими словами, необработанные данные без типа, в отличие от экземпляра известного класса.

Позиция GeneralBlock--32 подразумевает, что кто-то пытался выделить -32 байта памяти. Я не думаю, что это будет так далеко, как в инструментах, но это так. Тот факт, что число также является отрицательным, может указывать на то, что происходит что-то незнакомое, например, если вы на самом деле пытаетесь выделить MAXINT + 33, а число меняется. Я догадываюсь.

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

...