2013-11-28 29 views
9

Mam dziennik awarii wyprodukowany na iPhone OS 7.0.4. Mam odpowiednie pliki .app i .dSYM. Kiedy symbolicate dziennik zderzenia z Xcode 5, to pokazuje mi coś takiego:___lldb_unnamed_function w symbolicznym dzienniku awarii

Thread 0 Crashed: 
0 MyProject   0x001df98a ___lldb_unnamed_function6108$$MyProject + 42 
1 MyProject   0x001e0c49 ___lldb_unnamed_function6119$$MyProject + 9 
2 MyProject   0x002928d5 ___lldb_unnamed_function8439$$MyProject + 13 
3 MyProject   0x0027fa1f ___lldb_unnamed_function8072$$MyProject + 287 
4 MyProject   0x0028e657 ___lldb_unnamed_function8368$$MyProject + 27 
5 MyProject   0x002888d1 ___lldb_unnamed_function8257$$MyProject + 201 

kiedy symbolicate dziennik zderzenia z Xcode 4, wytwarza właściwą wynik - to pokazuje mi klas i metod z mojej aplikacji gdzie nastąpiła awaria. W śledzeniu stosu nie ma żadnych anonimowych bloków.

Dlaczego Xcode 4 i Xcode 5 generują różne symboliczne dzienniki awarii? Kiedy uruchomić skrypt symbolicatecrash w trybie opisowym, pokazuje identyczne wyniki zarówno dla Xcode to: oni dopasować właściwą .app i plików .dSYM i zarówno wykończenie z tych linii:

done. 
1 binary images were found. 
Running /Applications/Xcode.app/Contents/Developer/usr/bin/atos -arch armv7 -l 0xd1000 -o '<PATH>/MyProject.app/MyProject' 0x002928d5 0x002888d1 0x001e0c49 0x0027fa1f 0x000d8f27 0x001df98a 0x0028e657 | 
got symbolicator for <PATH>/MyProject.app/MyProject, base address 4000 
+0

Czy 'xcrun -f atos' pokazuje ścieżkę do prawidłowej, aktualnej instalacji Xcode? – Kerni

+0

@Kerni Tak, testowałem to na komputerach, na których Xcode 5 jest pojedynczą instalacją Xcode. Jest też jeden komputer z Xcode 4 i 5, xcrun pokazuje tam również ścieżkę do Xcode 5. –

Odpowiedz

2

I były problemy z Xcode symbolicating 5 i

więc uciekałem się do symbolizowania moich symboli ręcznie za pomocą atos.

atos -arch armv7 -o myApp.app/myApp 0x178e9e 
-- 
Warning: /usr/bin/atos is moving and will be removed from a future OS X release. 
It is now available in the Xcode developer tools to be invoked via: `xcrun atos` 
To silence this warning, pass the '-d' command-line flag to this tool. 
-- 
AFJSONEncode (in myApp) + 434 

ostrzeżenie wyglądał interesująco, więc postanowiliśmy spróbować xcrun Atos

xcrun atos -arch armv7 -o myApp.app/myApp 0x178e9e 
___lldb_unnamed_function6926$$myApp (in myApp) + 434 

który daje mi anonimowego funkcji.

więc domyślam się, że Xcode 5 używa atos xcrun, który ma błąd.

za pomocą atos pomógł mi zdiagnozować problem i załatać poprawkę. Nie mam zainstalowanego Xcode 4. może możesz sprawdzić, czy Xcode 4 daje takie same wyniki jak atos? I przestrzegać instrukcji zawartych w tym question

jestem w dobrej umysłu napisać skrypt do symbolicate dzienników awarii:/

+0

Musiałem użyć 'arm64', aby wymusić tworzenie symboli dla wszystkich kategorii ramion. Dał fałszywy błąd "armv7 not found", dopóki tego nie zrobiłem, ponieważ moja dyktafa zawierała symbole wszystkich łuków. – EntangledLoops

0

Musisz stworzyli kompilację z Xcode 4.6 i możesz teraz zaktualizować do wersji xcode 5. musisz ustawić katalog programistów xcode na xcode 4.6 katalog deweloperów, żeby działał.

0

Mam tego rodzaju problemy, gdy zapomniałem opuścić Spark Inspector podczas debugowania naszej aplikacji na urządzeniu iOS 5 (np. original iPad).

0

Miał te same symbole ___lldb_unnamed_function w dzienniku awarii.
Możesz uzyskać faktyczne klasy i metody od KSCrash (Third Party iOS Crash Reporter), w którym nastąpiła awaria.
Obsługuje również niezatapiane wyjątki C++!