Dlaczego moje punkty przerwania nie działają?

Mam ustawione punkty przerwania, ale Xcode je ignoruje.

Author: Binarian, 2008-09-15

30 answers

Po pierwsze, zgadzam się w 100% z wcześniejszymi ludźmi, którzy mówili wyłącz Load Symbols Lazily.

Mam jeszcze dwie rzeczy do dodania.

(moja pierwsza sugestia wydaje się oczywista, ale kiedy ktoś pierwszy mi ją zasugerował, moja reakcja przebiegała w następujący sposób: "daj spokój, proszę, naprawdę myślisz, że nie wiem lepiej...... oh.")

  1. Upewnij się, że przypadkowo nie ustawiono "Active Build Configuration "na" Release."

  2. Pod "cele" w grafice drzewo wyświetlania projektu, kliknij prawym przyciskiem myszy na celu i zrobić " uzyskać informacje."Poszukaj właściwości o nazwie "Generate Debug Symbols" (lub podobnej) i upewnij się, że jest to zaznaczone (aka ON). Możesz również spróbować znaleźć (również w Target >> Get Info) właściwość o nazwie "debug Information Format" i ustawić ją na " Dwarf with DSYM file."

Istnieje wiele innych właściwości pod Target > > Get Info, które mogą mieć wpływ na Ciebie. Poszukaj rzeczy takich jak optymalizacja lub kompresja kodu i włącz to coś wyłączonego (zakładam, że pracujesz w trybie debugowania, więc nie jest to zła rada). Również, szukać rzeczy takich jak rozbieranie symboli i upewnij się, że jest również wyłączony. Na przykład "produkt połączony z paskiem" powinien być ustawiony na " nie " dla celu debugowania.

 153
Author: pestophagous,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-11 18:45:43

W Xcode 7 zadziałało dla mnie:

1) Upewnij się, że target -> scheme -> Run - jest w trybie debugowania (zostało wydane)

2) Upewnij się, że zaznaczasz opcję "Debug executable" patrz poniżej:

Tutaj wpisz opis obrazka

 55
Author: Oded Regev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-17 09:51:40

Przejdź do preferencji debugowania Xcode. Upewnij się, że opcja "ładuj Symbole leniwie" nie jest zaznaczona.

 23
Author: AlanKley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-15 17:10:45

Właśnie miałem ten sam problem (znowu). Po trzykrotnym sprawdzeniu "Ładuj symbole leniwie" i rozebraniu i debugowaniu FLAG generowania informacji, zrobiłem co następuje:

  1. quit Xcode
  2. Otwórz okno terminala i płytę cd do katalogu projektu
  3. cd do .katalog xcodeproj
  4. Usuń wszystko oprócz .plik pbxproj (miałem Franka.mode1v3 i frank.pbxuser)

Możesz wykonać to samo zadanie w Finderze, klikając prawym przyciskiem myszy .xcodeproj pakiet i wybranie "Pokaż Zawartość pakietu".

Kiedy ponownie uruchomiłem Xcode, wszystkie moje okna zostały zresetowane do pozycji domyślnych, itp., ale punkty przerwania działały!

 15
Author: Frank Szczerba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-30 22:11:00

Dla Xcode 4.x: Goto Product>Debuguj przepływ pracy i odznacz "Pokaż demontaż podczas debugowania".

Dla Xcode 5.x Goto Debug>Debug Workflow i odznacz "Pokaż demontaż podczas debugowania".

 13
Author: bneupaane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-18 09:13:03

Kolejny powód

Ustaw DeploymentPostprocessing Na NO w BuildSettings - szczegóły tutaj

W skrócie-

Aktywacja tego ustawienia oznacza, że pliki binarne powinny być usuwane i tryb pliku, właściciel i informacje o grupie powinny być ustawione na standard wartości. [DEPLOYMENT_POSTPROCESSING]

Tutaj wpisz opis obrazka

 12
Author: hbk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-13 10:11:19

Jednym z możliwych rozwiązań tego może być ....przejdź do produktu>Schemat > Edytuj schemat>..Pod Run>info>Executable zaznacz opcję "Debug executable".

 10
Author: Soropromo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-18 12:39:02

Zobacz ten post: Punkty przerwania nie działają w Xcode?. Możesz naciskać "Run" zamiast "Debug", w takim przypadku twój program nie działa z pomocą gdb, w takim przypadku nie możesz oczekiwać, że punkty przerwania zadziałają!

 8
Author: Soong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-26 07:35:01

Rozwiązanie dla mnie z XCode 9.4.1 (nie zatrzymał się w żadnym punkcie przerwania):

Under Build Target - > Build Settings - > Optimization Level: Przełączony z "Optimize for speed" - > "No optimization" (teraz jest wolniejszy, ale działa)

 6
Author: Strinder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-19 08:10:32

To mnie w Xcode 9 przez pół frustrującego dnia. Skończyło się na prostym ustawieniu debugowania.

Idź Debug > Debug Workflow i upewnij się, że 'zawsze Pokaż demontaż' jest wyłączone. To proste. :(

 5
Author: Gaz Long,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-17 18:34:04

To, co rozwiązało to w moim przypadku, było dość proste, w folderze Xcode - Product-Clean Build, a następnie Product-Run(Nie przycisk Play Xcode).

(miał problem na Xcode 11-beta 4 po przejściu do testów jednostkowych z długim naciśnięciem przycisku odtwarzania Xcode)

 5
Author: Lukas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-09 04:40:58

Przyszedł na tę stronę z tym samym problemem (kod C w Xcode 6 nie zatrzymując się w punktach przerwania) i Żadne z powyższych rozwiązań nie zadziałało (projekt był praktycznie po wyjęciu z pudełka, ustawienia-wise, więc małe szanse na którejkolwiek z ustawień debuggera być ustawione na niewłaściwą wartość)...

Po marnowaniu trochę czasu na redukcję problemu, w końcu rozgryzłem winowajcę (dla mojego kodu):

Xcode (/LLVM) nie lubi preprocesorów #line W Stylu Bizona.

Usuwanie naprawili problem (debugger zatrzymał się w moich punktach przerwania).

 4
Author: Dave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-16 07:05:05

Dla Xcode 4:

go Product -> Debug ->  Activate Breakpoints
 4
Author: evya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-05 13:38:12

Mam wiele problemów z punktami przerwania w Xcode (2.4.1). Używam projektu, który zawiera tylko inne projekty (np. rozwiązanie w Visual Studio). Czasami stwierdzam, że punkty przerwania w ogóle nie działają, chyba że jest co najmniej jeden zestaw punktów przerwania w projekcie startowym (tj. ten, który zawiera punkt wejścia dla mojego kodu). Jeśli tylko punkty przerwania są w projektach "niższego poziomu", po prostu są ignorowane.

Wydaje się również, że Xcode poprawnie obsługuje operacje punktów przerwania tylko wtedy, gdy działasz na punkcie przerwania, gdy jesteś w projekcie zawierającym linię źródłową, na której znajduje się punkt przerwania.

Jeśli spróbuję usunąć lub wyłączyć punkty przerwania za pomocą innego projektu, akcja czasami nie będzie skuteczna, nawet jeśli debugger wskazuje, że tak. Tak więc znajdę się w łamaniu wyłączonych punktów przerwania lub (teraz niewidocznego) punktu przerwania, który usunąłem wcześniej.

 2
Author: Charles Anderson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 12:34:05

Moje punkty przerwania nie działają, a następnie zrobiłem Build / Clean wszystkie cele, aby je ponownie uruchomić.

 2
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-09 00:56:32

Myślę, że problemem może być niekompatybilność między wersjami urządzeń i Xcode. Mam ten problem podczas próby debugowania na moim iPhone 4S z systemem iOS 5.0.1. Nadal używam Xcode 3.2.5. Symbole z telefonu otrzymałem wybierając "Użyj tego urządzenia do rozwoju" w oknie Organizatora. Ten telefon odmawia jednak breakpoint. Mój stary 3GS będzie breakpoint, ten sam projekt Xcode, te same ustawienia... po prostu inne urządzenie i działa iOS 4.0. To chyba jest błąd Xcode w 3.2.5, ponieważ mam symbole. Po wypróbowaniu wszystkich rozwiązań zamieszczonych tutaj do tej pory, zdecydowałem rozwiązanie mojego problemu jest iść do przodu i uaktualnić do XCode 4. Być może nie można skutecznie debugować, chyba że podstawowy SDK jest co najmniej tak wysoki, jak system, na którym debugować. Może to oczywiste - czy ktoś może to potwierdzić?

Edit: zaktualizuję, kiedy będę mógł potwierdzić, że to prawda.

 2
Author: Gavin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-06 12:19:28

Usunięcie mojego folderu Build rozwiązało problem.

 2
Author: Jack Bellis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-24 18:34:42

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 Wznów.

 2
Author: William Jockusch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-11 09:18:24

To samo mi się przydarzyło w XCode 6.3.1. Udało mi się to naprawić przez:

  • Przejdź do widok - > nawigatory - > Pokaż nawigatory debugowania
  • Kliknij prawym przyciskiem myszy w katalogu głównym projektu - > Przenieś punkty przerwania (Jeśli wybrano opcję użytkownik)
  • (wybrałem również opcję share breakpoints , chociaż nie jestem pewien, czy to konieczne).

Po wykonaniu tej zmiany ustawiam opcje Przenieś punkty przerwania z powrotem do projektu i usuń zaznaczenie opcji Share breakpoints i nadal działa.

Nie do końca wiem dlaczego, ale to odzyskuje moje punkty przerwania.

 2
Author: Osk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-12 15:01:34

W tym celu, a także dla Xcode 6 i nowszych upewnij się, że przycisk stanu punktu przerwania jest aktywowany (przycisk podobny do niebieskiej strzałki):

Tutaj wpisz opis obrazka

 2
Author: df611,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-26 12:26:47

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
 1
Author: brian.clear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-03 11:57:00

Znalazłem problem. W jakiś sposób" Pokaż demontaż podczas debugowania " został włączony w moim XCode, co stwarza ten problem. Kiedy go wyłączyłem, cały mój debugger zatrzymał się w moim kodzie źródłowym.

Można go znaleźć pod: Product->Debug Workflow->Show Disassembly podczas debugowania.

 1
Author: Perumal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-25 11:35:12

Możesz aktywować / dezaktywować punkty przerwania w rozwijanym menu Tutaj wpisz opis obrazka

 1
Author: Stan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-08 12:00:43

Próbowałem wszystkich powyższych rzeczy, ale dla mnie tylko dezaktywacja debugowania punktów przerwania raz, a następnie ich aktywacja zadziałała.

 1
Author: smohta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-08 11:11:54

Podczas ustawiania punktu przerwania, kliknij prawym przyciskiem myszy i powinieneś uzyskać kilka opcji dotyczących obsługi punktu przerwania (Zaloguj vars i kontynuuj, Wstrzymaj wykonanie, itp.)

Upewnij się również, że "Ładuj symbole leniwie" nie jest zaznaczone w preferencjach debugowania.

(dotyczy Xcode 3.1, nie jestem pewien co do poprzednich / przyszłych wersji)

 0
Author: Scott Swezey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-15 19:49:44

Upewnij się również, że dystrybucja aplikacji AppStore nie jest również zainstalowana na urządzeniu.

 0
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-27 05:58:42

Kolejną rzeczą do sprawdzenia jest to, że jeśli Masz plik plist" uprawnienia " dla trybu debugowania (prawdopodobnie dlatego, że robisz rzeczy z pękiem kluczy), upewnij się, że plik plist ma wiersz "get-task-allow" = yes. Bez niego debugowanie i logowanie zostanie przerwane.

 0
Author: davidcann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-22 14:24:11

Wydaje się, że są 3 Stany dla punktów przerwania w Xcode. Jeśli klikniesz na nich, przejdą przez różne ustawienia. Ciemny niebieski jest włączony, szary jest wyłączony i widziałem czasami blady niebieski, który wymagał ode mnie 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 opcję + polecenie + powrót lub opcję Go (debug) z menu Uruchom.

 0
Author: crackity_jones,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-15 20:06:11

Mam Xcode 3.2.3 SDK 4.1 punkty przerwania zawiodą losowo. Odkryłem, że jeśli wyczyścisz kompilację i użyjesz polecenia dotykowego pod kompilacją, będą działać ponownie.

 0
Author: Damon McGIll,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-04 21:36:56

Oto jeden niejasny, na który wpadłem: jeśli pracujesz nad biblioteką współdzieloną (lub wtyczką), twoje punkty przerwania będą żółte podczas uruchamiania, co może spowodować młotek klawiatury w frustracji i zabić proces debugowania. 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ę ważne. Napotkałem ten problem z wtyczką do przeglądarki... BPs zostały wyłączone, dopóki nie przejrzałem strony, która utworzyła instancję mojej wtyczki.

 0
Author: Tim Keating,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-26 05:48:59