Po włączeniu wszystkich punktów przerwania wyjątków moja aplikacja zawsze zatrzymuje się w AppDelegate, ale jestem w stanie kontynuować wykonywanie programu, ale jego bardzo denerwująca przyczyna zawsze prowadzi mnie do appdelegate. Jakieś pomysły, dlaczego?Zawsze zatrzymuj się w delegacie aplikacji po włączeniu Wszystkie wyjątki punkt przerwania
Odpowiedz
Tylko umożliwić breakpoints Objective-C.
Aby zobaczyć rzeczywisty oświadczenie, że jest przyczyną błędu dodać przerwania wyjątek:
z głównego menu Debug: Breakpoints: Tworzenie wyjątków Breakpoint.
Kliknij prawym przyciskiem myszy punkt przerwania i ustaw wyjątek na Objective-C. Zignoruje to inne typy wyjątków, takich jak C++. Istnieją części interfejsów API, które wykorzystują wyjątki, takie jak dane podstawowe (Apple to Special).
Dodaj akcję: "po $ arg1".
Uruchom aplikację, aby uzyskać punkt przerwania, a znajdziesz się w linii powodującej wyjątek, a komunikat o błędzie pojawi się w konsoli debuggera.
Działa !! Dziękujemy –
Doskonała wskazówka! Dzięki. To doprowadzało mnie do szału przez kilka projektów. – VaporwareWolf
wyjątkami C++ wspólny kod i normalnej. Punkt przerwania wyjątku przechwytuje każdy podniesiony wyjątek, nawet jeśli są one obsługiwane poprawnie. Więc jeśli nie określisz Obj-C tylko zauważysz, że wykonanie zatrzymuje się w wielu pozornie przypadkowych miejscach. Cały czas korzystam z tego w AVAudioPlayer.
Inną rzeczą, na którą należy zwrócić uwagę, są brakujące zasoby. Natknąłem się na to pytanie od innego pytającego, który wydaje się również mieć ten sam problem.
Xcode throws an exception in Main() in iOS 8 with 'all exceptions' breakpoint
Jeśli używasz Swift, czy chcesz mieć wszystkie wyjątki zrobione, można zmienić opcję na wszystkie wyjątki automatycznie kontynuowane po ocenie działań. Wystarczy znaleźć w Breakpoint Navigator i prawo/ctrl kliknij wszystkie wyjątki Breakpoint, aby go edytować:
Następnie zaznacz pole opcji:
- 1. Punkt przerwania wskazuje "objc_autoreleaseNoPool"
- 2. Punkt przerwania w działaniu nie działa
- 3. Uruchamianie usługi w tle po włączeniu Androida
- 4. Punkt przerwania nie zostanie złamany w Silverlight
- 5. Błąd segmentacji po włączeniu optymalizacji w prostej aplikacji GTK +?
- 6. Punkt przerwania gdb na pthread_create
- 7. Jak dodać warunkowy punkt przerwania w vb6?
- 8. Czy można wskazać punkt przerwania w GDB?
- 9. Punkt przerwania debugowania w Swift Playground?
- 10. Jak dodać punkt przerwania w Xcode?
- 11. Jak dodać punkt przerwania do obiektu objc_exception_throw?
- 12. Eclipse/warunkowy punkt przerwania powoduje wyjątek BreakpointException
- 13. Zatrzymaj wszystkie wątki w punkcie przerwania w VS2010
- 14. Jak mogę przechwycić wszystkie wyjątki w aplikacji na iPhone'a
- 15. Punkt przerwania nie zostanie aktualnie trafiony, cshtml
- 16. Powrót z funkcji wykorzystującej punkt przerwania
- 17. Obsługa błędów w systemie Mac OSX/iPhone w Delegacie aplikacji?
- 18. Jak ustawić punkt przerwania wewnątrz pakietu atomu?
- 19. Google Chrome debugger pomija punkt przerwania
- 20. Warunkowy punkt przerwania GDB dla typów arbitralnych
- 21. Złóż symboliczny punkt przerwania na UICollectionViewFlowLayoutBreakForInvalidSizes
- 22. Jak ustawić punkt przerwania w treści funkcji w R-studio?
- 23. MVC3 Dziwny błąd po włączeniu kompilacji widoków
- 24. W phpStorm, jak umieścić punkt przerwania javascript w pliku php
- 25. Jak ustawić punkt przerwania w przypadku wzrostu długości wektora?
- 26. NSCursor zawsze resetuje się do strzałki
- 27. Jak wykryć punkt przerwania usuwany w programie Visual Studio?
- 28. Jak mogę uchwycić wszystkie wyjątki z aplikacji wxPython?
- 29. Jak umieścić punkt przerwania w klasie bez jego źródła?
- 30. Jak ustawić punkt przerwania na funkcji Pythona w gdb
nie jest to pytanie, ale AppDelegate jest pierwszą rzeczą, uruchomił Twoją aplikację, więc może to być powód. –
1. Co to jest wiadomość w okienku lldb? 2. Włączaj punkty krytyczne Objective-C. Kliknij prawym przyciskiem myszy "Wszystkie wyjątki, wybierz" Edytuj punkt przerwania ", zmień wyskakujące okienko z" Wszystkie "na" Cel-C. "3. Czasami kod" zostaje pomieszany ", usuń wszystkie punkty przerwania, zamknij i ponownie uruchom Xcode. – zaph
Zaph, 1: okienko lldb nie wyświetla komunikatu, po prostu (lldb), 2: tak, przejście na objc zadziałało, nie wiem dlaczego? możesz dodać go jako odpowiedź, jeśli chcesz, thx ty! – Godfather