Xcode 4 не показывает «EXC_BAD_ACCESS» в области отладки. Почему бы и нет? - PullRequest
1 голос
/ 17 августа 2011

Я намеренно создаю ошибку "EXC_BAD_ACCESS" .. Конечно, приложение вылетает, НО отладчику почему-то не хватает сообщения «EXC_BAD_ACCESS». Почему это так?

Это код, который я использую:

NSString *str = [[NSString alloc] initWithFormat:@"Foo"];
NSArray *a = [[NSArray alloc ]initWithObjects:str, nil];
[str release];
[a release];
NSLog(@"%@",str);

А это журнал отладчика:

GNU gdb 6.3.50-20050815 (Apple version gdb-1518) (Sat Feb 12 02:52:12 UTC 2011)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin".Attaching to process 41313.
sharedlibrary apply-load-rules all
(gdb) 

Ответы [ 2 ]

0 голосов
/ 17 августа 2011

Может быть проблема с NSLog ... Попробуйте другой способ создания сегфоута.Например:

char * str;

str      = ( char * )666;
str[ 0 ] = 0;
0 голосов
/ 17 августа 2011

В попытке извергнуть то, что мне сказали, задавая аналогичный вопрос коллеге, мне сказали, что это Apple эквивалентно «экземпляру объекта, не установленному экземпляру объекта». Иногда отладчик показывает дамп того, что (возможно) вызвало его, а в других случаях он полностью игнорируется. Я уверен, что причина в рифме, но она вполне может быть где-то спрятана в документах глубоко в залах Apple. До этого момента я никогда не находил никаких шаблонов с дампами EXC_BAD_ACCESS (или их отсутствием). Я только что научился игнорировать недостающую информацию и начал искать проблемы с указателями!

Хотя это не слишком полезно, я решил, что все равно поделюсь этим!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...