debug

Pokaż przestarzałe

*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.

Dostarcza kilka podstawowych funkcji do debugowania kodu w Roblox. W przeciwieństwie do biblioteki debug znalezionej w Lua natywnie, ta wersja została mocno sandboxowana.

Podsumowanie

Funkcje

Funkcje

traceback

Zwraca zapis funkcji call_track() jako ciąg znaków; inaczej, opis funkcji, które zostały wezwane do tej pory. Podczas debugingu zachowuje się to jak błąd Stack trace, ale nie powstrzymuje wykonania skryptu.

Parametr level określa poziom połączenia wezwania, z 1 będąc wezwaniem debug.traceback() samo, 2>22> będąc wezwanie funkcji 5>Library. debug. traceback5> i tak dalej. Zobacz przykład kodu poniżej dla przykładu funkcji sequenc

Uwaga, że ta funkcja często zwraca nieprawidłowe wyniki (w porównaniu do oryginalnego kodu źródłowego) i że format zwracanego traceback'u może się zmienić w dowolnym momencie. Powinieneś nie ściągnąć wartości zwracanej do określonych informacji, takich jak imiona skryptów lub numery linii.

Poniższy przykład zawiera kolejne funkcje; fnB() jest nazywany, a potem wzywa fnA(), które w kolejności wzywa debug.traceback().


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Wezwij funkcję fB() aby rozpocząć śledzenie
fnB()

Parametry

message: string

Pierwsza linia zwróconej ciąg.

level: number

Liczba wezwanych "w górę" stosu wezwanych, aby zwrócić.

Wartość domyślna: 1

Zwroty

Traceback funkcji bieżącej stosy.

traceback

Zwraca zapis funkcji call_track() jako ciąg znaków; inaczej, opis funkcji, które zostały wezwane do tej pory. Podczas debugingu zachowuje się to jak błąd Stack trace, ale nie powstrzymuje wykonania skryptu.

Parametr level określa poziom połączenia wezwania, z 1 będąc wezwaniem debug.traceback() samo, 2>22> będąc wezwanie funkcji 5>Library. debug. traceback5> i tak dalej. Zobacz przykład kodu poniżej dla przykładu funkcji sequenc

Uwaga, że ta funkcja często zwraca nieprawidłowe wyniki (w porównaniu do oryginalnego kodu źródłowego) i że format zwracanego traceback'u może się zmienić w dowolnym momencie. Powinieneś nie ściągnąć wartości zwracanej do określonych informacji, takich jak imiona skryptów lub numery linii.

Poniższy przykład zawiera kolejne funkcje; fnB() jest nazywany, a potem wzywa fnA(), które w kolejności wzywa debug.traceback().


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Wezwij funkcję fB() aby rozpocząć śledzenie
fnB()

Parametry

thread: coroutine

Wątek zwrócony przez coroutine.create().

message: string

Pierwsza linia zwróconej ciąg.

level: number

Liczba wezwanych "w górę" stosu wezwanych, aby zwrócić.

Wartość domyślna: 1

Zwroty

Traceback funkcji bieżącej stosy.

info

Umożliwia programowe sprawdzenie pamięci stosu wezwania. Ta funkcja różni się od debug.traceback() w tym, że gwarantuje format danych, które wypisuje. To jest użyteczne dla celów ogólnego śledzenia i filtrowania, a także do wysyłania danych do systemów oczekujących strukturalnego wejścia, takiego jak agregacja kryształkowa.


local function fnA()
-- Generator wyjściowy ("s") i linia ("l") na poziomach 1 i 2
print(debug.info(1, "sl")) --> funkcja znajdująca się w
print(debug.info(2, "sl")) --> funkcja znajdująca się w znaczniku 7
end
fnA()

Uwaga, że ta funkcja jest podobna do debug.getinfo, niedostępnej części standardowej biblioteki Lua, która służy do podobnego celu.

Parametry

level: number

Określa na jakim poziomie wejścia w pilańdzie zwrotu informacji powinna opisywać się zwracana informacja. Wartość 1 reprezentuje funkcję, która wzywa funkcję debug.info() , a wartość 2 reprezentuje funkcję, która wzywa tę funkcję, itp.

options: string

String, który opisuje, co powinno reprezentować zwrócone informacje. Musi zawierać tylko 0 lub 1 instancje znaków slnaf , każde z nich reprezentując kawałek informacji:

  • s (string) ) — identyfikator źródła funkcji, równy z pełną nazwą skryptu, w którym funkcja jest zdefiniowana.
  • l ( liczba ) — liczba linii funkcji reprezentowana przez level .
  • n (string ) — Imię funkcji; może być nil dla funkcji anonimowych i funkcji C bez przypisanego nazwy debug.
  • a ( liczba , czy funkcja jest wieloczwartkowana) — Arytmet funkcji, który odnosi się do liczby parametrów i czy funkcja jest wieloczwartkowana.
  • f (funkcja ) — funkcja, którą inspektowano.

Zwroty

info

Umożliwia programowe sprawdzenie pamięci stosu wezwania. Ta funkcja różni się od debug.traceback() w tym, że gwarantuje format danych, które wypisuje. To jest użyteczne dla celów ogólnego śledzenia i filtrowania, a także do wysyłania danych do systemów oczekujących strukturalnego wejścia, takiego jak agregacja kryształkowa.


local function fnA()
end
local function fnB()
end
-- Wybiór linii ("l"), nazwa ("n") i identyfikator ("f") dla obu funkcji ftA() i ftB()
print(debug.info(fnA, "lnf")) --> 1 funkcja znajdująca się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1znajdujący się w pliku 1zn
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2

Uwaga, że ta funkcja jest podobna do debug.getinfo, niedostępnej części standardowej biblioteki Lua, która służy do podobnego celu.

Parametry

function: function

Funkcja stosu wezwania, która powinna opisywać zwracanych informacji, powinna opisać.

options: string

String, który opisuje, co powinno reprezentować zwrócone informacje. Musi zawierać tylko 0 lub 1 instancje znaków slnaf , każde z nich reprezentując kawałek informacji:

  • s (string) ) — identyfikator źródła funkcji, równy z pełną nazwą skryptu, w którym funkcja jest zdefiniowana.
  • l ( liczba ) — Linia, na której zdefiniowano function .
  • n (string ) — Imię funkcji; może być nil dla funkcji anonimowych i funkcji C bez przypisanego nazwy debug.
  • a ( liczba , czy funkcja jest wieloczwartkowana) — Arytmet funkcji, który odnosi się do liczby parametrów i czy funkcja jest wieloczwartkowana.
  • f (funkcja ) — funkcja, którą inspektowano.

Zwroty

info

Umożliwia programowe sprawdzenie pamięci stosu wezwania. Ta funkcja różni się od debug.traceback() w tym, że gwarantuje format danych, które wypisuje. To jest użyteczne dla celów ogólnego śledzenia i filtrowania, a także do wysyłania danych do systemów oczekujących strukturalnego wejścia, takiego jak agregacja kryształkowa.


local function fnA()
-- Generator wyjściowy ("s") i linia ("l") na poziomach 1 i 2
print(debug.info(1, "sl")) --> funkcja znajdująca się w
print(debug.info(2, "sl")) --> funkcja znajdująca się w znaczniku 7
end
fnA()

Uwaga, że ta funkcja jest podobna do debug.getinfo, niedostępnej części standardowej biblioteki Lua, która służy do podobnego celu.

Parametry

thread: coroutine

Wątek zwrócony przez coroutine.create().

level: number

Określa na jakim poziomie wejścia w pilańdzie zwrotu informacji powinna opisywać się zwracana informacja. Wartość 1 reprezentuje funkcję, która wzywa funkcję debug.info() , a wartość 2 reprezentuje funkcję, która wzywa tę funkcję, itp.

options: string

String, który opisuje, co powinno reprezentować zwrócone informacje. Musi zawierać tylko 0 lub 1 instancje znaków slnaf , każde z nich reprezentując kawałek informacji:

  • s (string) ) — identyfikator źródła funkcji, równy z pełną nazwą skryptu, w którym funkcja jest zdefiniowana.
  • l ( liczba ) — liczba linii funkcji reprezentowana przez level .
  • n (string ) — Imię funkcji; może być nil dla funkcji anonimowych i funkcji C bez przypisanego nazwy debug.
  • a ( liczba , czy funkcja jest wieloczwartkowana) — Arytmet funkcji, który odnosi się do liczby parametrów i czy funkcja jest wieloczwartkowana.
  • f (funkcja ) — funkcja, którą inspektowano.

Zwroty

profilebegin

void

Początkuje profilowanie dla MicroProfiler label.

Parametry

label: string

Tekst, który ta MicroProfiler etykieta wyświetla.

Zwroty

void

profileend

void

Zatrzymuje profilowanie dla najnowszego MicroProfiler label, który debug.profilebegin() otworzył.

Zwroty

void

getmemorycategory

Zwraca nazwę aktywnej kategoriapamięci obecnego wątku.

Zwroty

Aktywna kategoria pamięci wątku.

setmemorycategory

Przydziela użytkownikowi określony tag nazwy do kategorii pamięci obecnego wątku w Developer Console . Przydatny do analizy użycia pamięci przez wiele wątków w tym samym skrypcie, które byłyby w innym przypadku grupowane pod tym samym tagiem/imieniem. Wróci nazwę poprzedniej kategoriapamięci obecnego wątku.

Parametry

tag: string

Zwroty

Poprzednia kategoria pamięci wątku.

resetmemorycategory

void

Zresetuje tag przypisany przez debug.setmemorycategory() do automatycznie przypisanej wartości (zwykle nazwa skryptu).

Zwroty

void

dumpcodesize

void

Pokazuje tabelę rozmiaru kodu źródłowego poszczególnych funkcji i skryptów. Ta funkcja jest dostępna tylko w Komendowej Barze w Studio. Więcej szczegółów można znaleźć na stronie Generowanie kodu źródłowego.

Zwroty

void