Mam ustawione punkty przerwania, ale wydaje się, że Xcode je ignoruje.
Mam ustawione punkty przerwania, ale wydaje się, że Xcode je ignoruje.
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.
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:
Przejdź do preferencji debugowania Xcode. Upewnij się, że opcja „Wczytaj symbole leniwie” NIE jest zaznaczona.
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!
Inny powód
Ustaw DeploymentPostprocessing
na NIE w BuildSettings - szczegóły tutaj
W skrócie -
Aktywacja tego ustawienia wskazuje, że pliki binarne powinny zostać usunięte, a informacje o trybie pliku, właścicielu i grupie powinny mieć ustawione wartości standardowe. [DEPLOYMENT_POSTPROCESSING]
YES
tylko w moich, subproject
a następnie punkty przerwania nie działały subprojects
. A po ustawieniu NO
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ć!
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”.
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. :(
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).
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.
Moje punkty przerwania nie działają, a następnie zrobiłem kompilację / czyszczenie wszystkich celów, aby ponownie działały.
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.
Usunięcie folderu Build rozwiązało problem za mnie.
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.
W Xcode 4
- Product menu > Manage Schemes
- Select the scheme thats having debugging problems (if only one choose that)
- Click Edit button at bottom
- Edit Scheme dialog appears
- in left panel click on Run APPNAME.app
- on Right hand panel make sure youre on INFO tab
- look for drop down DEBUGGER:
- someone had set this to None
- set to LLDB if this is your preferred debugger
- can also change BUILD CONFIGURATION drop down to Debug
- but I have other targets set to AdHoc which debug fine once Debugger is set
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.
Jeśli wszystko inne zawiedzie, zamiast punktu przerwania, możesz wywołać następującą funkcję:
void BreakPoint(void) {
int i=1;
#if !__OPTIMIZE__
printf("Code is waiting; hit pause to see.\n");
while(i);
#endif
}
Aby wznowić, ręcznie ustaw i na zero, a następnie naciśnij przycisk wznowienia.
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.
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)
Upewnij się również, że dystrybucja aplikacji AppStore nie jest również zainstalowana na urządzeniu.
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.
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.
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.