Mam ustawione punkty przerwania, ale wydaje się, że Xcode je ignoruje.
xcode
breakpoints
AlanKley
źródło
źródło
Odpowiedzi:
Przede wszystkim zgadzam się w 100% z wcześniejszymi ludźmi, którzy powiedzieli, że wyłącz
Load Symbols Lazily
.Mam jeszcze dwie rzeczy do dodania.
(Moja pierwsza sugestia wydaje się oczywista, ale za pierwszym razem, gdy ktoś mi ją zasugerował, moja reakcja przebiegała w ten sposób: „daj spokój, proszę, naprawdę myślisz, że nie wiedziałbym lepiej… och”)
Upewnij się, że przypadkowo nie ustawiłeś „Aktywnej konfiguracji kompilacji” na „Wydanie”.
W sekcji „Cele” w graficznym drzewie projektu kliknij prawym przyciskiem myszy cel i wybierz „Uzyskaj informacje”. Poszukaj właściwości o nazwie „Generuj symbole debugowania” (lub podobnej) i upewnij się, że jest zaznaczona (czyli WŁ.). Możesz także spróbować znaleźć (również w Cel >> Uzyskaj informacje) właściwość o nazwie „Format informacji debugowania” i ustawić ją na „Dwarf with dsym file”.
Istnieje wiele innych właściwości w obszarze Cel >> Uzyskaj informacje, które mogą mieć wpływ na Ciebie. Poszukaj rzeczy takich jak optymalizacja lub kompresja kodu i wyłącz to (zakładam, że pracujesz w trybie debugowania, więc nie jest to zła rada). Poszukaj też rzeczy takich jak usuwanie symboli i upewnij się, że jest to WYŁĄCZONE. Na przykład „Usuń połączony produkt” powinien być ustawiony na „Nie” dla celu debugowania.
źródło
W Xcode 7 działało dla mnie:
1) Upewnij się, że cel -> schemat -> Uruchom - jest w trybie debugowania (było Release)
2) Upewnij się, że zaznaczyłeś opcję „Debuguj plik wykonywalny”, patrz poniżej:
źródło
Przejdź do preferencji debugowania Xcode. Upewnij się, że opcja „Wczytaj symbole leniwie” NIE jest zaznaczona.
źródło
Właśnie miałem ten sam problem (ponownie). Po trzykrotnym sprawdzeniu „Wczytaj symbole leniwie” oraz usunięciu i debugowaniu flag generowania informacji, wykonałem następujące czynności:
Możesz wykonać to samo zadanie w Finderze, klikając prawym przyciskiem myszy pakiet .xcodeproj i wybierając opcję „Pokaż zawartość pakietu”.
Kiedy ponownie uruchomiłem Xcode, wszystkie moje okna zostały zresetowane do domyślnych pozycji itp., Ale punkty przerwania działały!
źródło
W przypadku Xcode 4.x: Idź do produktu> Przepływ pracy debugowania i odznacz „Pokaż dezasemblację podczas debugowania”.
W przypadku Xcode 5.x Idź do Debuguj> Przepływ pracy debugowania i odznacz „Pokaż dezasemblację podczas debugowania”.
źródło
Inny powód
Ustaw
DeploymentPostprocessing
na NIE w BuildSettings - szczegóły tutajW skrócie -
źródło
YES
tylko w moich,subproject
a następnie punkty przerwania nie działałysubprojects
. A po ustawieniuNO
było idealnie!Zobacz ten post: Punkty przerwania nie działają w Xcode? . Możesz naciskać "Uruchom" zamiast "Debuguj". W takim przypadku twój program nie działa z pomocą gdb, w którym to przypadku nie możesz oczekiwać, że punkty przerwania będą działać!
źródło
Jednym z możliwych rozwiązań może być… przejdź do opcji Produkt> Schemat> Edytuj schemat> .. W obszarze Uruchom> informacje> Sprawdź plik wykonywalny „Debuguj plik wykonywalny”.
źródło
Dzięki temu byłem w Xcode 9 przez pół frustrującego dnia. Skończyło się na prostym ustawieniu debugowania.
Przejdź do Debuguj> Debuguj przepływ pracy i upewnij się, że opcja „Zawsze pokazuj dezasemblację” jest wyłączona. Proste. :(
źródło
Rozwiązanie dla mnie z XCode 9.4.1 (nie zatrzymało się na żadnym punkcie przerwania):
W ramach celu kompilacji -> Ustawienia kompilacji -> Poziom optymalizacji: zmieniono z „Optymalizuj pod kątem szybkości” -> „Bez optymalizacji” (teraz jest wolniejsze, ale działa)
źródło
Rozwiązanie tego problemu w moim przypadku było dość proste, w Xcode - Product - Clean Build Folder, a następnie Product - Run (nie w przycisku Play Xcode).
(Wystąpił problem z Xcode 11 -beta 4 po przełączeniu na testy jednostkowe z długim naciśnięciem przycisku odtwarzania Xcode)
źródło
Przeszedłem na tę stronę z tym samym problemem (kod C w Xcode 6 nie zatrzymuje się w punktach przerwania) i żadne z powyższych rozwiązań nie zadziałało (projekt był praktycznie po wyjęciu z pudełka, pod względem ustawień, tak mała szansa na jakiekolwiek ustawienie debugera być ustawiona na niewłaściwą wartość) ...
Po zmarnowaniu czasu na redukcję problemu, w końcu odkryłem winowajcę (dla mojego kodu):
Xcode (/ LLVM) nie lubi
#line
poleceń preprocesora w stylu Bizona .Usunięcie ich rozwiązało problem (debugger zatrzymał się na moich punktach przerwania).
źródło
Dla Xcode 4:
źródło
Mam dużo problemów z punktami przerwania w Xcode (2.4.1). Używam projektu, który zawiera tylko inne projekty (jak rozwiązanie w programie Visual Studio). Czasami stwierdzam, że punkty przerwania w ogóle nie działają, chyba że w projekcie początkowym jest ustawiony co najmniej jeden punkt przerwania (tj. Ten zawierający punkt wejścia dla mojego kodu). Jeśli jedyne punkty przerwania znajdują się w projektach „niższego poziomu”, są po prostu ignorowane.
Wydaje się również, że Xcode obsługuje poprawnie tylko operacje na punktach przerwania, jeśli działasz na punkcie przerwania, gdy jesteś w projekcie zawierającym wiersz źródłowy, w którym znajduje się punkt przerwania.
Jeśli spróbuję usunąć lub wyłączyć punkty przerwania za pośrednictwem innego projektu, akcja czasami nie działa, mimo że debugger wskazuje, że tak. Więc stwierdzę, że psuję się na wyłączonych punktach przerwania lub na (teraz niewidocznym) punkcie przerwania, który usunąłem wcześniej.
źródło
Moje punkty przerwania nie działają, a następnie zrobiłem kompilację / czyszczenie wszystkich celów, aby ponownie działały.
źródło
Myślę, że problemem może być niekompatybilność między wersjami urządzenia i Xcode. Mam ten problem podczas próby debugowania na moim iPhonie 4S z systemem iOS 5.0.1. Nadal używam Xcode 3.2.5. Symbole pobrałem ze słuchawki, wybierając opcję „użyj tego urządzenia do programowania” w oknie Organizatora. Ten telefon odmawia jednak punktu przerwania. Mój stary 3GS będzie punkt przerwania, ten sam projekt Xcode, te same ustawienia ... tylko inne urządzenie i będzie miał iOS 4.0. Myślę, że to błąd Xcode w 3.2.5, ponieważ mam symbole. Po wypróbowaniu wszystkich dotychczas zamieszczonych tutaj rozwiązań zdecydowałem, że rozwiązaniem mojego problemu jest przejście dalej i uaktualnienie do XCode 4. Być może nie możesz efektywnie debugować, chyba że twój podstawowy SDK jest co najmniej tak wysoki, jak system, na którym chcesz debugować. Może to oczywiste - czy ktoś może potwierdzić?
Edycja: zaktualizuję, gdy będę mógł potwierdzić, że to prawda.
źródło
Usunięcie folderu Build rozwiązało problem za mnie.
źródło
Przydarzyło mi się to samo w XCode 6.3.1. Udało mi się to naprawić poprzez:
Po wykonaniu tej zmiany ustawiam opcje Przenieś punkty przerwania z powrotem na projekt i odznaczam opcję Udostępnij punkty przerwania opcję i nadal działa.
Nie wiem dokładnie dlaczego, ale to odzyska moje punkty przerwania.
źródło
W tym celu, a także w przypadku Xcode 6 i nowszych upewnij się, że przycisk stanu punktu przerwania jest aktywny (przycisk przypominający niebieską strzałkę):
źródło
W Xcode 4
źródło
Znalazłem problem. W jakiś sposób opcja „ Pokaż demontaż podczas debugowania ” została włączona w moim XCode, co powoduje ten problem. Kiedy go wyłączyłem, cały mój debugger zatrzymał się w kodzie źródłowym.
Możesz go znaleźć pod:
Product->Debug Workflow->Show Disassembly
podczas debugowania.źródło
Możesz aktywować / dezaktywować punkty przerwania w menu rozwijanym
źródło
Jeśli wszystko inne zawiedzie, zamiast punktu przerwania, możesz wywołać następującą funkcję:
Aby wznowić, ręcznie ustaw i na zero, a następnie naciśnij przycisk wznowienia.
źródło
Wypróbowałem wszystkie powyższe rzeczy, ale dla mnie dezaktywacja punktów przerwania debugowania tylko raz, a następnie ich aktywacja działała.
źródło
Podczas ustawiania punktu przerwania kliknij prawym przyciskiem myszy i powinieneś uzyskać kilka opcji dotyczących obsługi punktu przerwania (loguj zmienne i kontynuuj, wstrzymaj wykonywanie itp.)
Upewnij się również, że w preferencjach debugowania nie jest zaznaczona opcja „Wczytaj symbole leniwie”.
(Dotyczy Xcode 3.1, brak pewności co do poprzednich / przyszłych wersji)
źródło
Upewnij się również, że dystrybucja aplikacji AppStore nie jest również zainstalowana na urządzeniu.
źródło
Inną rzeczą do sprawdzenia jest to, że jeśli masz plik plist "Uprawnienia" dla trybu debugowania (prawdopodobnie dlatego, że robisz coś z pękiem kluczy), upewnij się, że plik plist ma wiersz "get-task-allow" = YES. Bez tego debugowanie i logowanie zostaną przerwane.
źródło
Wygląda na to, że istnieją 3 stany dla punktów przerwania w Xcode. Jeśli je klikniesz, przejdą przez różne ustawienia. Ciemnoniebieski jest włączony, wyszarzony jest wyłączony i czasami widziałem blady niebieski, który wymagał ponownego kliknięcia punktu przerwania, aby przejść do ciemnoniebieskiego koloru.
Poza tym upewnij się, że uruchamiasz go za pomocą polecenia debug, a nie polecenia run. Możesz to zrobić, naciskając Option + command + return lub opcję Go (debug) z menu Run.
źródło
Mam Xcode 3.2.3 SDK 4.1 Punkty przerwania będą losowo kończyć się niepowodzeniem. Odkryłem, że jeśli wyczyścisz kompilację i użyjesz polecenia dotykowego w kompilacji, będą działać ponownie.
źródło
Oto niejasny problem, na który się natknąłem: jeśli pracujesz nad udostępnianą biblioteką (lub wtyczką), twoje punkty przerwania staną się żółte podczas uruchamiania, co może spowodować frustrację wbijania klawiatury i kończenie procesu debugowania. Cóż, nie rób tego! Symbole nie zostaną załadowane, dopóki aplikacja nie załaduje biblioteki, w którym to momencie punkty przerwania staną się prawidłowe. Napotkałem ten problem z wtyczką do przeglądarki ... BP były wyłączone, dopóki nie przeszedłem na stronę, na której została uruchomiona moja wtyczka.
źródło