Debugowanie

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Studio oferuje wiele narzędzi debugowania powszechnie występujących w zintegrowanych środowiskach rozwojowych (IDE).Te narzędzia pomagają rozwiązać błędy i sprawdzać skrypty linii po linii, gdy są uruchamiane.Informacje o debugowaniu są wyświetlane w Oglądaniu, Stosie wezwania, Punktach przerwania i Wyjściu okien, które możesz sprawdzić.

Ogólny przepływ pracy

Jeśli zauważysz problem w swoim doświadczeniu lub chcesz zweryfikować, czy działa tak, jak zamierzałeś, możesz debugować kod z nim związany w następujący sposób:

  1. Wstawuj punkty przerwania na liniach kodu, które chcesz przeanalizować.

  2. Na zakładce Skrypt, kliknij Odtwórz lub Uruchom w zakładce testowej, aby rozpocząć sesję testowania, znaną również jako sesja debugowania.

    Playtest options in Script tab.
  3. Kiedy skrypt uderza w punkt przerwania, sesja testowania odtwarza się.Zbadaj Oglądaj, Stos wezwania i Wyświetl okno wyników, aby pomóc ci zdiagnozować i zrozumieć problem.

  4. Wstaw dodatkowe punkty przerwania na linach kodu, które jeszcze nie zostały wykonane, aby sprawdzić dodatkowe dane.Wyłącz lub usuń punkty przerw, których już nie potrzebujesz.

  5. Na zakładce Skrypt , kliknij Zatrzymaj , aby zakończyć sesjadebugowania.

Powtórz poprzednie kroki, aż rozwiążesz problem lub znajdziesz jego przyczynę korzenną.Kiedy poznasz ogólny przepływ pracy, możesz skonfigurować punkty przerwania, aby przerwać tylko wtedy, gdy spełnione zostaną określone warunki, wydrukować wiadomość do okna Wyjście i uruchomić tylko na klientzie lub serwerze.Aby uzyskać więcej informacji, zobacz Konfiguracje punktów przerwania.

Wstawuj punkty przerwania

Punkty przerwania są punktami kontrolnymi, które wstrzymują lub "łamią" wykonanie Twoich skryptów na określonych liniach.Możesz wykorzystać przerwy do sprawdzenia i debugowania swojego doświadczenia, obserwuj zmienne i sprawdź stos wezwania.Punkty przerwania są jednym z najskuteczniejszych sposobów debugowania funkcji, więc są jednym z najważniejszych narzędzi do debugowania.Możesz wstawić punkt przerwania na każdej linii kodu wykonywalnego.

Aby wstawić standardowy punkt przerwania w linii kodu, kliknij lewym przyciskiem myszy margines po prawej stronie numeru linii.Możesz również kliknąć prawym przyciskiem myszy margines i kliknąć Wstaw punkt przerwania.Punkt przerwania pojawia się jako czerwony punkt.Aby je wyłączyć, kliknij kropkę.

Breakpoint in gutter is a red dot

Przejdź przez kod

Jeśli wstawisz punkt przerwania na linii w skrypcie, skrypt zatrzyma się przed wykonaniem tej linii.Żółta strzałka o nazwie "debugger" wskazuje, który kod zostanie następnie wykonany.

Active breakpoint in the debugger shows yellow arrow

Kiedy skrypt zostanie wstrzymany, wykonaj następujący kod jedną linią na raz, przechodząc przez nie za pomocą przycisków w zakładce Skrypt.Przyciski pojawiają się również w lewym górnym rogu okna stosu wezwania.Kiedy przechodzisz przez kod, monitoruj, jak zmienia się twoje doświadczenie, gdy wykonywana jest obecna linia.

Debugging tools indicated in Script tab

Poniższa tabela podsumowuje trzy sposoby przejścia przez kod.Aby kontynuować wykonywanie kodu po naciśnięciu punktu przerwania, kliknij Wróć w zakładce Skrypt .

PrzyciskAkcjaSkrótOpis
Button to step into a line of code Wejdź do F11Przycisk Wejdź do przenosi debugger do kodu funkcji na obecnej linii.Jeśli nie ma funkcji na obecnej linii, debugger przenosi się na następną linię.
Button to step over a line of code Krok ponad F10Przycisk Step Over przenosi debugger na następną linię kodu, nie przenosząc się do funkcji.
Button to step out of a line of code Krok w dół ShiftF11Przycisk Krok w dół przenosi debugger z obecnej funkcji na następną linię kodu po wezwaniu funkcji.Jeśli obecna linia nie znajduje się w funkcji, debugger przenosi się do następnej linii.

Zbadaj kod

Kiedy punkt przerwania wstrzymuje doświadczenie podczas testu odtwarzania, możesz sprawdzić okno Oglądaj , okno Stos wezwania , okno Wyświetlaj i okno Edytor skryptów, aby znaleźć informacje o wartościach zmiennych i wykonaniu funkcji.Mając te informacje, możesz znaleźć przyczynę problemu w swoim doświadczeniu.

Oglądaj

Okno Oglądaj ma dwa tabele: Zmienne i Moje zegarki .Zakładka zmienne pokazuje informacje o obecnych zmiennych w zakresie, a zakładka Moje zegarki pokazuje wartość zmiennych lub wyrażeń, które określasz.Obie zakładki wyświetlają informacje przed wykonaniem linii.

Zakładka Zmienne ma następujące kolumny:

  • Nazwa – Oznaczona nazwa zmiennej.
  • Zakres – Zakres zmiennej: gdzie można ją "zobaczyć" i uzyskać dostęp, tak jak lokalny, globalny lub wartość w górę.
  • Wartość – obecna wartość zmiennej.
  • Typ danych – Typ danych zmiennej.

Zakładka Moje zegarki ma następujące kolumny:

  • Wyrażenie – wyrażenie, które chcesz obserwować.
  • Wartość – obecna wartość wyrażenia.
  • Typ danych – Typ danych wyrażenia.

Na zakładce Zmienne , możesz filtrować zakres zmiennych, klikając ikonafiltra.Możesz również sortować wiersze, klikając nazwę kolumny, którą chcesz sortować.Okno zegara dostarcza zarówno rozszerzone, jak i skompresowane widoki tabel.

Watch Window with variable values

Aby sprawdzić kod w oknie Oglądaj:

  1. Jeśli okno Oglądaj nie jest otwarte, kliknij Oglądaj w zakładce Zobacz.

  2. Kiedy sesja testowa zatrzymuje się na punktach przerwania, pomyśl o tym, jak oczekujesz, że obecna linia zmieni wartości zmiennych w tym skrypcie.

  3. Kiedy przechodzisz przez kod, obserwuj, jak wartość zmiennych zmienia się w zakładce Zmienne .Jeśli chcesz obserwować wyrażenie nie na zakładce zmiennych, otwórz zakładkę Moje zegarki .Kliknij pustą linię w kolumnie Wyrażenie, a następnie wprowadź wyrażenie do niej.Jeśli chcesz obserwować zmienną w edytorze skryptów, dwukrotnie kliknij nazwę zmiennej, następnie kliknij Dodaj obserwację .

  4. Porównaj wartości zmiennych i wyrażeń z tym, czego oczekujesz i co widzisz w oknie Oglądania.Jeśli istnieje różnica między tym, jak oczekujesz, że zmienią się zmienne, a tym, jak rzeczywiście zmieniają się, wówczas zmienne lub funkcje interakujące z nimi mogą powodować problemy lub błędy.

Stos wezwania

Okno Stos wezwania pokazuje, który kod zostanie wykonywany następnie, gdy debugger dotrze do punktu przerwania.Stos wezwania wskazuje, z jakiej linii wzywasz funkcję, i jeśli wzywasz funkcję w innych funkcjach, kolejność wezwań funkcji i które linie wzywasz pozostałe funkcje.Najważniejszą funkcją stosu wezwania jest ostatnia wywołana i pierwsza do wykonania.Możesz użyć stosu wezwania, aby sprawdzić, czy kolejność wezwań funkcji w twoich skryptach odpowiada twojemu modelowi mentalnemu wezwań funkcji.

Call Stack in Studio

Jeśli masz wiele punktów przerwania w różnych skryptach, mogą one wstrzymać sesję testowania odtwarzania jednocześnie.Możesz przejść do punktów przerw, klikając strzał obok nazwy skryptu w oknie stosu wezwania.Jeśli klikniesz Wznow , przejdziesz nad wszystkie punkty przerwania, które zatrzymały się jednocześnie.

Call Stack with multiple breakpoints

Aby sprawdzić kod w oknie stosu wezwania podczas sesji debugowania:

  1. Jeśli okno Stos wezwania nie jest otwarte, kliknij Stos wezwania w zakładce Zobacz.

  2. Kiedy twoje doświadczenie wstrzymuje się na punktach przerw, pomyśl o tym, jak oczekujesz, że kolejność wezwań funkcji będzie w tym skrypcie.

    Script Editor with two functions and one breakpoint
  3. Stos wezwania pokazuje kolejność wezwań funkcji.Jeśli punkt przerwania znajduje się w funkcji, stos wezwania pokazuje, która funkcja wywołuje tę funkcję, jeśli jest taka.Stos wezwania pokazuje również nazwę i numer linii każdej funkcji.Kliknij wiersz, aby funkcja mogła do niego skoczyć.

    Click in Call Stack to jump to line
  4. Porównaj kolejność wezwań funkcji, o której myślałeś w kroku 2 i rzeczywistą kolejność z kroku 3.Jeśli wystąpią jakiekolwiek różnice, istnieje różnica między tym, jak oczekujesz, że kod zachowa się, a tym, jak rzeczywiście zachowuje się, co powoduje potencjalne problemy i błędy.

Wyjście

Okno Wyjście, dostępne z zakładki Widok, wyświetla błędy zarejestrowane podczas uruchamiania skryptów, wiadomości z Roblox Engine, komunikaty o błędach z wezwania do print() oraz błędy z wezwania do warn().

Edytor skryptów

Debugger jest zintegrowany z edytorem skryptów.Kiedy twoje doświadczenie zatrzymuje się na punktach przerwania w skrypcie, możesz przesunąć kursor nad nazwę zmiennej, aby zobaczyć jej wartość.Na przykład możesz zobaczyć wartość tabeli, którą przekazujesz jako argument w wezwaniu funkcji.

Mouseover a variable in Script Editor to show value

Konfiguracje punktów przerwania

Możesz skonfigurować punkty przerwania, aby przerwały się tylko wówczas, gdy spełnione zostaną określone warunki, aby wyświetlić wiadomość w oknie Wyjście, i uruchomić tylko na klientzie lub serwerze.Możesz również połączyć te konfiguracje, aby najlepiej pasowały do twoich potrzeb debugowania.

Edytuj punkty przerwania

Możesz edytować konfigurację punktu przerwania w dowolnym momencie, w tym podczas sesji testów grania.Jeśli edytujesz punkty przerw w trakcie sesji testowania, zmiany utrzymują się nawet po zakończeniu sesja.Możesz także edytować punkt przerwania, który aktywnie wstrzymuje sesję testowania gry, ale zmiany nie mają zastosowania do następnej sesjatestowania gry.

Aby edytować konfigurację punktu przerwania:

  1. Kliknij prawym przyciskiem myszy punkt przerwania, a następnie kliknij Edytuj punkt przerwania .

    Right click to edit a breakpoint in Studio
  2. W oknie Edytuj punkt przerwania skonfiguruj punkt przerwania tak, jak chcesz.

    Edit Breakpoint window in Studio

Warunek, wiadomość o logowaniu i opcje

Dla każdego punktu przerwania możesz ustawić jego Warunek , Wiadomość logowania , Kontynuuj wykonanie i Kontekst .

Warunek jest wyrażeniem, które określa, czy punkt przerwania się aktywuje .Warunek jest opcjonalny.Jeśli warunek jest pusty, punkt przerwania zawsze się aktywuje.Jeśli warunek istnieje, punkt przerwania aktywuje się tylko wtedy, gdy warunek jest prawdziwy.Na przykład, jeśli chcesz, aby punkt przerwania aktywował się tylko wtedy, gdy zmienna n równa się 42, ustaw warunek jako n == 42.Warunki są przydatne do debugowania sposobu wykonywania funkcji, gdy pewne zmienne mają określone wartości lub jeśli chcesz przerwać tylko w niektórych wykonaniach w pętlu.

Wiadomość Log to wyrażenie, które drukuje się do okna Wyjście, gdy warunek jest prawdziwy.Format wiadomości log jest taki sam jak argument dla oświadczenia print().Na przykład ustaw wiadomość logową jako "The value of n:", n, aby wyświetlić tę samą wiadomość, co print("The value of n:", n).Możesz dodawać i usuwać wiadomości log bez konieczności zatrzymywania wykonania, w przeciwieństwie do oświadczeń drukowanych.

Opcja Kontynuuj wykonanie określa, czy punkt przerwania zatrzymuje skrypt, jeśli się aktywuje.Przydatne jest, jeśli chcesz rejestrować wartości zmiennych lub wyrażeń bez przerwania wykonania.Ta opcja jest wyłączona domyślnie.

Kontekst przerwa określa, czy przerwa powinna się aktywować na klientzie, serwerze lub edytorze.Jeśli kontekst jest klientem, punkt przerwania uruchamia się w skryptach strony klienta.Jeśli kontekst to Serwer, wówczas punkt przerwania uruchamia się w skryptach po stronie serwera.Jeśli kontekst jest Edytuj, punkt przerwania uruchamia się, gdy debugujesz wtyczki.Jeśli klikniesz Kontekst niestandardowy, okno wskazuje obecny kontekst.

Edit Breakpoint Window shows Custom Context

Punkty przerw kondycyjne i punkty logowania

Studio oferuje nazwane odmiany punktów przerwania, aby przyspieszyć wstawianie punktów przerwania.Aby wstawić oznaczoną odmianę, kliknij prawym przyciskiem myszy margines po prawej stronie numeru linii, a następnie kliknij odmianę, którą chcesz wstawić.

Right click to insert a breakpoint

Punkt przerwania warunkowy to punkt przerwania z warunkiem i wyłączoną kontynuacją wykonania .Punkty przerwania warunkowe wstrzymują wykonanie skryptu tylko wtedy, gdy warunek jest prawdziwy, więc są przydatne do debugowania tego, jak funkcje wykonują się, gdy pewne zmienne mają określone wartości.Punkty przerw warunkowych używają wartości zmiennych przed wykonaniem linii.Kiedy wstawiasz punkt przerwania warunkowy, twój kurursor skupia się na opcji Warunek , którą możesz szybko ustawić.

Punkt Logowania to punkt przerwania z włączoną wiadomością logowania i kontynuowaną wykonaniem .Logowanie punktów loguje wiadomości do okna Wyjście bez przerwania skryptów, więc są one przydatne do debugowania zmiennych wartości.Punkty logowania używają wartości zmiennych przed wykonaniem linii.Kiedy wstawisz punkt logowania, twój kurser skupi się na wiadomości logowej , aby szybko ją ustawić.

Wyłącz punkty przerwania

Istnieje wiele sposobów wyłączenia i ponownego włączenia punktu przerwania:

  • Kliknij ikonę punktu przerwania.
  • Edytuj punkt przerwania i przełącz jego włączone pole wyboru.
  • Kliknij prawym przyciskiem myszy ikonę punktu przerwania i kliknij Wyłącz punkt przerwania lub Włącz punkt przerwania.

Usuń punkty przerwania

Aby usunąć punkt przerwania, kliknij jego ikonaśrodkowym kliknięciem. Możesz także kliknąć prawym przyciskiem myszy jego ikonę i kliknąć Usuń punkt przerwania .

Okno punktów przerwania

Okno punktów przerw wyświetla wszystkie punkty przerw w twoim doświadczeniu.Aby otworzyć okno punktów przerwania, kliknij zakładkę Wyświetl w górnej części Studio, a następnie kliknij Punktów przerwania.

Breakpoints window in Studio

Okno punktów przerwania ma następujące kolumny: nieoznakowane, Skrypt, Linia, Linia źródła, Warunek, Wiadomość o dzienniku i Kontynuuj wykonanie.Nieoznakowane kolumny Skryptu i Linii zawsze się wyświetlają, ale możesz przełączyć pozostałe kolumny, klikając trzy kropki w prawym górnym rogu okna.

W nieoznakowanej kolumnie etykieta (x3) wskazuje liczbę punktów przerw w tej samej linii kodu, a ikona wskazuje konfigurację punktu przerw.Punkty przerw na tej samej linii dzielą tę samą kondycję, wiadomość logowania i kontynuują wykonanie, ale różnią się w kontekście.Możesz edytować konfigurację punktu przerwania w oknie Punktów przerwania.Na przykład możesz edytować warunek punktu przerwania poprzez edytowanie pola tekstowego w jego kolumnie warunków.

Edit the Condition of a Breakpoint in the Breakpoints Window

Możesz włączyć i wyłączyć punkty przerwania, klikając jego ikonę przerwania w kolumnie Włączone.Możesz również kliknąć następujące przyciski, aby włączać, rozpoczynać, wyłączać, przestawaći usunąć niektóre lub wszystkie punkty przerwania.

PrzyciskAkcja
Button to disable all breakpointsWyłącz wszystkie punkty przerwania. Jeśli którekolwiek punkty przerwania są wyłączone, włącz je wszystko.
Button to delete all breakpointsUsuń wszystkie punkty przerwania.

Ikony punktów przerwania

Ikona punktu przerwania zależy od tego, czy jest włączona, ma warunek i ma wiadomość o dzienniku.Jeśli punkt przerwania ma wiadomość logową, pojawia się jako punkt logowania niezależnie od tego, czy ma warunek.

NazwaIkonaWłączoneWarunekWiadomość o logowaniu
Punkt przerwaniaTakNieNie
NieNieNie
Warunkowy punkt przerwaniaTakTakNie
NieTakNie
Punkt logowaniaTakMożeTak
NieMożeTak

Dodatkowe narzędzia debugowania

Oprócz debuggera Studio oferuje dodatkowe narzędzia do debugowania, które możesz wykorzystać do naprawy problemów i błędów w swoim doświadczeniu.

Pasek poleceń

Pasek Polecenia pozwala uruchamiać komendy Luau, gdy doświadczenie jest uruchomione.Jest dostępny w Studio z zakładki Wygląd i w konsoli programisty.

Konsola programisty

Konsola dla programistów zapewnia szeroką gamę szczegółów, w tym wyjście klienta i serwera, zużycie pamięci, wykonywaniesieci i wiele więcej .Aby otworzyć konsolę programisty podczas testowania lub gry w doświadczeniu, wprowadź /console do czatu lub naciśnij F9.Aby uzyskać więcej informacji, zobacz Konsola programisty.

Pliki dziennika

Kiedy skrypt drukuje lub występują błędy w Studio lub aplikacji Gracz, aplikacja rejestruje wiadomość w pliku dziennika w lokalnym systemie plików.Pliki te znajdują się w różnych miejscach w zależności od systemu operacyjnego.

Okna

Aby uzyskać dostęp do plików dziennika na Windows:

  1. Otwórz Eksplorator plików .
  2. Przejdź do katalogu %LOCALAPPDATA%\Roblox\logs .
  3. Kliknij dwukrotnie na log, aby go otworzyć. Logi o tej samej wartości XXXXX pochodzą z tej samej sesjaStudio.

Maków

Aby uzyskać dostęp do plików dziennika na Macu:

  1. Otwórz znajdźnik .
  2. Na pasku menu wybierz IdźIdź do katalogu... .
  3. W dialogu wprowadź ~/Library/Logs/Roblox.
  4. Kliknij dwukrotnie wynik, aby przejść do katalogu rekordów Roblox.
  5. W katalogu kliknij dwukrotnie na log, aby go otworzyć.

iOS

Możesz zbierać dzienniki iOS za pomocą Maca lub za pomocą urządzenieiOS.

Aby uzyskać dostęp do plików dziennika iOS na Macu:

  1. Podłącz urządzenie iOS do Maca.
  2. Otwórz znajdźnik .
  3. Nawiguj do Użytków i otwórz aplikację Konsoli .
  4. Aby wypełnić dzienniki w czasie rzeczywistym w aplikacji Konsola, wybierz urządzenie iOS z paska bocznego, kliknij przycisk Rozpocznij i odtwórz problem na urządzeniu iOS.
  5. Aby wypełnić archiwizowane rejestry w aplikacji konsoli, uruchom sudo log collect --device-name "[iOS Device Name]" w Terminalu .Upewnij się, że nie ma apostrof w nazwie urządzenie, w przeciwnym razie możesz otrzymać błąd podczas uruchamiania polecenia.

Android

Aby uzyskać dostęp do plików dziennika na Androida:

  1. Nawiguj do Ustawień > Systemu > Opcji programisty .
  2. Przełącz opcje programisty na.
  3. Na komputerze pobierz i zainstaluj Android Studio.
  4. W Android Studio kliknij Logcat .
  5. Podłącz urządzenie Android do komputera, aby automatycznie wypełnić Logcat logami.