2010-09-24 9 views
17

Ok, myślę, że widziałem to wszystko teraz.XCode debugowanie vs budowanie wersji podczas debugowania

Przez około 24 godziny próbowałem debugować aplikację, próbując znaleźć miejsce, w którym nagle dochodzi do wszystkich dziwnych wypadków. Debugowałem przez tryb Simulator/Debugowanie. Jak zwykle, kiedy trafiłem w punkt przerwania, mogłem zobaczyć wartość zmiennych (przez większość czasu). Nagle nie mogłem wyświetlić zmiennych bez względu na to, co zrobiłem (przy okazji, mówię o zawieszeniu myszą, ponieważ z jakiegoś głupiego powodu moje xcode wyłączyło wszystkie narzędzia do debugowania z menu debugowania).

Krótko mówiąc, z czystej utraty rzeczy do zrobienia, decyduję się na debugowanie w trybie Release. Teraz mogę trafić punkty przerwania i zobaczyć zawartość moich zmiennych. Co jeszcze bardziej dezorientuje to, że teraz xcode daje mi bardziej wszechstronny widok zmiennych, które im "oglądają" (unosząc nad).

Wiem, że Apple lubi robić różne rzeczy. Ale co do cholery !? Czy ktoś może mnie uderzyć, a potem powiedzieć mi, co tu nie rozumiem?

Odpowiedz

24

Po pierwsze, konfiguracje "Debugowanie" i "Zwolnienie" to tylko nazwy, możesz także nazwać je "Jon" i "Carla", jeśli chcesz. Są to tylko nazwy dla zestawów konfiguracyjnych, które można modyfikować i można je modyfikować, aby na przykład konfiguracja "Debugowanie" nie była odpowiednia do debugowania. Więc jeśli (przypadkowo) wyłączyłeś generowanie symboli debugowania w konfiguracji "Debugowanie", otrzymasz dokładnie to, co opisałeś.

Przejdź do "Projekt" -> "Edytuj aktywny cel". Wybierz kartę "Kompilacja" i wybierz konfigurację "Debuguj" w rozwijanym polu w lewym górnym rogu. Wybierz "Pokaż wszystkie ustawienia" w rozwijanym polu poniżej i wpisz "debugowanie" w pasku wyszukiwania obok tych dwóch rozwijanych pól.

Powinno być ustawienie "Generuj symbole debugowania", upewnij się, że jest zaznaczone jego pole wyboru. "Poziom symboli debugowania" powinien być ustawiony na "Wszystkie symbole". Ponadto "Format informacji debugowania" powinien być ustawiony na "DWARF z plikiem dSYM".

Po zmianie ustawień oczyść swój projekt ("Build" -> "Wyczyść") i skompiluj ponownie.

Nadzieję, że pomaga.

+0

co oznacza, że ​​sprawa krasnoluda dSYM dotyczy debugowania? – jokoon

+5

[DWARF] (http://en.wikipedia.org/wiki/DWARF) to format pliku debugowania. Katalogi/pakiety dSYM (symbole debugowania) to sposób organizacji/przechowywania plików DWARF firmy Apple, dzięki czemu symbole debugowania mogą być oddzielone od plików binarnych (w przeciwieństwie do umieszczania symboli debugowania w plikach binarnych). Separacja umożliwia wysyłanie aplikacji bez symboli debugowania, ale jeśli otrzymasz dziennik awarii lub potrzebujesz debugowania aplikacji, nadal masz symbole debugowania. – DarkDust

+0

Format informacji debugowania w Xcode dla mojego projektu jest ustawiony na DWARF z dsym. Czy to znaczy, że wysyłam symbole debugowania do klientów, którzy mogą go użyć do inżynierii wstecznej mojej aplikacji? –

Powiązane problemy