debug
*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
Zwraca stronę niedozwolonego formatu, która opisuje obecny funkcjonalny stos.
Zwraca stronę niedozwolonego formatu, która opisuje obecny funkcjonalny stos.
Przechodzi przez cały stos stacki obecnego wątku i zwraca stronę zawierającą call stack szczegółów poziomu celu.
Przechodzi przez cały stos stacki obecnego wątku i zwraca stronę zawierającą call stack szczegółów funkcji docelowej.
Przechodzi przez cały stos stacku targetu i zwraca stronę zawierającą call stack poziomu celu.
Zaczyna profilowanie dla etykiety.
Zatrzymuje profilowanie dla najnowszego otwartego przez debug.profilebegin() profilu.
Zwraca nazwę aktywnej kategoriapamięci obecnego wątku.
Przydziela niestandardowy tag kategoriapamięci obecnego wątku.
Zresetuje tag przypisany przez debug.setmemorycategory() do automatycznie przypisanej wartości (zwykle nazwa skryptu).
Pokazuje tabelę rozmiaru kodu źródłowego poszczególnych funkcji i skryptów.
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
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
Wątek zwrócony przez coroutine.create().
Pierwsza linia zwróconej ciąg.
Liczba wezwanych "w górę" stosu wezwanych, aby zwrócić.
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
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.
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.
- 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
Funkcja stosu wezwania, która powinna opisywać zwracanych informacji, powinna opisać.
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.
- 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
Wątek zwrócony przez coroutine.create().
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.
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.
- 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
Początkuje profilowanie dla MicroProfiler label.
Parametry
Tekst, który ta MicroProfiler etykieta wyświetla.
Zwroty
profileend
Zatrzymuje profilowanie dla najnowszego MicroProfiler label, który debug.profilebegin() otworzył.
Zwroty
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
Zwroty
Poprzednia kategoria pamięci wątku.
resetmemorycategory
Zresetuje tag przypisany przez debug.setmemorycategory() do automatycznie przypisanej wartości (zwykle nazwa skryptu).
Zwroty
dumpcodesize
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.