2012-09-24 15 views
7

Mam kilka wypadków sigsegv pochodzących z crittercism, ale nie jestem całkiem pewien, jak rozpocząć debugowanie. Jedyną linią kodu, która jest moja, jest główne wywołanie od początku rozbitego wątku.Awaria sigsegv na iphone od crittercism

Kopiowanie rozbitego wątku ślad stosu z crittercism:

Uzasadnienie:

24-Sep-12 14:38:14 SIGSEGV główne (main.m: 11)

stos :

 
0 
0 libobjc.A.dylib 0x356265b0 objc_msgSend + 15 
1 
1 UIKit 0x3861c313 + 1310 
2 
2 UIKit 0x386337cf + 206 
3 
3 UIKit 0x385ef80b + 258 
4 
4 QuartzCore 0x34f56d63 + 214 
5 
5 QuartzCore 0x34f56901 + 460 
6 
6 QuartzCore 0x34f57835 + 16 
7 
7 QuartzCore 0x34f5721b + 238 
8 
8 QuartzCore 0x34f57029 + 316 
9 
9 UIKit 0x386786e5 + 572 
10 
10 UIKit 0x386784a3 + 66 
11 
11 UIKit 0x38677391 + 1464 
12 
12 UIKit 0x385ed1ef + 2458 
13 
13 UIKit 0x385ec6d5 + 72 
14 
14 UIKit 0x385ec123 + 6154 
15 
15 GraphicsServices 0x3779f5a3 + 590 
16 
16 CoreFoundation 0x372f0683 + 14 
17 
17 CoreFoundation 0x372efee9 + 212 
18 
18 CoreFoundation 0x372eecb7 + 646 
19 
19 CoreFoundation 0x37261ebd CFRunLoopRunSpecific + 356 
20 
20 CoreFoundation 0x37261d49 CFRunLoopRunInMode + 104 
21 
21 GraphicsServices 0x3779e2eb GSEventRunModal + 74 
22 
22 UIKit 0x38640301 UIApplicationMain + 1120 
23 
23 MyApp 0x35bf main (main.m:11) 
+0

Ponadto mam wiele innych dziwnych wypadków. Czy to możliwe, ponieważ system zamyka aplikację po ostrzeżeniu o małej ilości pamięci? – Murlakatam

Odpowiedz

0

Najpierw musisz "symbolizować" dziennik awarii. Istnieje wiele stron internetowych, które poinstruują cię o tym.

Ponieważ ten stos kończy się na objc_msgSend, najbardziej prawdopodobną przyczyną jest zwisający wskaźnik.

Do debugowania tych zalecam używanie NSZombies. Jeśli testujesz na symulatorze, możesz spróbować "Guard malloc".

0

Ta awaria jest spowodowana przez wywołanie metody na wskaźniku do obiektu, który został już zwolniony. Jest to bardzo częsty błąd licznika odniesień gdzieś w kodzie, który utrzymuje się na elementach UIKit. Ale, co należy zrobić w praktyce, prześlij plik .DSYM do Crittercism. Można to zrobić ręcznie za pośrednictwem strony internetowej lub poprzez Web API call w ramach procesu automatycznej kompilacji.

Powiązane problemy