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.

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

Podsumowanie

Funkcje

Funkcje

traceback

Zwraca ścieżkę powrotną do obecnego stosu wezwania funkcji jako ciąg; innymi słowy, opis funkcji, które zostały wezwane do tej pory.Podczas debugowania zachowuje się to jak ślad stosu błędów, ale nie powstrzymuje wykonania skryptu.

Parametr level określa poziom stosu wezwania, który należy rozważyć, z 1 być wezwaniem debug.traceback() samego, 2 być wezwaniem funkcji, która wywołuje debug.traceback() i tak dalej.Zobacz przykład kodu poniżej dla przykładu wezwań funkcji sekwencyjnych.

Zauważ, że ta funkcja często zwraca niedokładne wyniki (w porównaniu do oryginalnego kodu źródłowego) i że format powrotu śledzenia może się zmienić w dowolnym momencie.Nie powinieneś nie analizować wartości zwrotnej dla konkretnych informacji, takich jak nazwy skryptów lub numery linii.

Poniższy przykład zawiera kolejne wezwania funkcji; fnB() jest wzywany, a następnie wzywa fnA(), które następnie wzywa debug.traceback().


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

Parametry

message: string

Pierwsza linia zwróconej ciąg.

level: number

Liczba wezwań "w górę" stosu wezwania do zwrotu.

Wartość domyślna: 1

Zwroty

Śledzenie stosu wezwań funkcji obecnej.

traceback

Zwraca ścieżkę powrotną do obecnego stosu wezwania funkcji jako ciąg; innymi słowy, opis funkcji, które zostały wezwane do tej pory.Podczas debugowania zachowuje się to jak ślad stosu błędów, ale nie powstrzymuje wykonania skryptu.

Parametr level określa poziom stosu wezwania, który należy rozważyć, z 1 być wezwaniem debug.traceback() samego, 2 być wezwaniem funkcji, która wywołuje debug.traceback() i tak dalej.Zobacz przykład kodu poniżej dla przykładu wezwań funkcji sekwencyjnych.

Zauważ, że ta funkcja często zwraca niedokładne wyniki (w porównaniu do oryginalnego kodu źródłowego) i że format powrotu śledzenia może się zmienić w dowolnym momencie.Nie powinieneś nie analizować wartości zwrotnej dla konkretnych informacji, takich jak nazwy skryptów lub numery linii.

Poniższy przykład zawiera kolejne wezwania funkcji; fnB() jest wzywany, a następnie wzywa fnA(), które następnie wzywa debug.traceback().


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Wezwij funkcję fnB() 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 wezwań "w górę" stosu wezwania do zwrotu.

Wartość domyślna: 1

Zwroty

Śledzenie stosu wezwań funkcji obecnej.

info

Pozwala na programowe inspekcję stosu wezwania.Funkcja ta różni się od debug.traceback() w tym, że gwarantuje format danych, które zwraca.Jest to przydatne do ogólnych celów rejestracji i filtrowania, a także do wysyłania danych do systemów oczekujących na strukturalne wejście, takich jak agregacja wypadków.


local function fnA()
-- Identyfikator źródła wyjścia ("s") i linia ("l") na poziomach 1 i 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

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

Parametry

level: number

Określa na jakim poziomie stosu wezwania informacje zwrotne powinny być opisane.Wartość 1 reprezentuje funkcję, która dzwoni debug.info(), wartość 2 reprezentuje funkcję, która wezwała tę funkcję, i tak dalej.

options: string

Sznurek, który opisuje to, co powinna reprezentować zwrócona informacja.Musi zawierać tylko 0 lub 1 instancje znaków slnaf, każda z nich reprezentuje kawałek informacji:

  • s ( ciąg ) — identyfikator źródła funkcji, równy pełnej nazwie skryptu, w którym funkcja jest zdefiniowana.
  • l ( numer ) — numer linii wezwania funkcji reprezentowany przez level .
  • n ( ciąg ) — nazwa funkcji; może to być nil dla funkcji anonimowych i funkcji C bez przypisanej nazwy debugowania.
  • a ( liczba , boolean ) — Arytmetyka funkcji, która odnosi się do liczby parametrów i czy funkcja jest variacyjna.
  • f ( funkcja ) — Funkcja, która została sprawdzona.

Zwroty

info

Pozwala na programowe inspekcję stosu wezwania.Funkcja ta różni się od debug.traceback() w tym, że gwarantuje format danych, które zwraca.Jest to przydatne do ogólnych celów rejestracji i filtrowania, a także do wysyłania danych do systemów oczekujących na strukturalne wejście, takich jak agregacja wypadków.


local function fnA()
end
local function fnB()
end
-- Linia wyjściowa ("l"), nazwa ("n") i identyfikator ("f") dla obu fnA() i fnB()
print(debug.info(fnA, "lnf")) --> 1 funkcja fnA: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2

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

Parametry

function: function

Funkcja stosu wezwania, której informacje zwrócone powinny opisać.

options: string

Sznurek, który opisuje to, co powinna reprezentować zwrócona informacja.Musi zawierać tylko 0 lub 1 instancje znaków slnaf, każda z nich reprezentuje kawałek informacji:

  • s ( ciąg ) — identyfikator źródła funkcji, równy pełnej nazwie skryptu, w którym funkcja jest zdefiniowana.
  • l ( numer ) — Linia, na której function jest zdefiniowana.
  • n ( ciąg ) — nazwa funkcji; może to być nil dla funkcji anonimowych i funkcji C bez przypisanej nazwy debugowania.
  • a ( liczba , boolean ) — Arytmetyka funkcji, która odnosi się do liczby parametrów i czy funkcja jest variacyjna.
  • f ( funkcja ) — Funkcja, która została sprawdzona.

Zwroty

info

Pozwala na programowe inspekcję stosu wezwania.Funkcja ta różni się od debug.traceback() w tym, że gwarantuje format danych, które zwraca.Jest to przydatne do ogólnych celów rejestracji i filtrowania, a także do wysyłania danych do systemów oczekujących na strukturalne wejście, takich jak agregacja wypadków.


local function fnA()
-- Identyfikator źródła wyjścia ("s") i linia ("l") na poziomach 1 i 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

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

Parametry

thread: coroutine

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

level: number

Określa na jakim poziomie stosu wezwania informacje zwrotne powinny być opisane.Wartość 1 reprezentuje funkcję, która dzwoni debug.info(), wartość 2 reprezentuje funkcję, która wezwała tę funkcję, i tak dalej.

options: string

Sznurek, który opisuje to, co powinna reprezentować zwrócona informacja.Musi zawierać tylko 0 lub 1 instancje znaków slnaf, każda z nich reprezentuje kawałek informacji:

  • s ( ciąg ) — identyfikator źródła funkcji, równy pełnej nazwie skryptu, w którym funkcja jest zdefiniowana.
  • l ( numer ) — numer linii wezwania funkcji reprezentowany przez level .
  • n ( ciąg ) — nazwa funkcji; może to być nil dla funkcji anonimowych i funkcji C bez przypisanej nazwy debugowania.
  • a ( liczba , boolean ) — Arytmetyka funkcji, która odnosi się do liczby parametrów i czy funkcja jest variacyjna.
  • f ( funkcja ) — Funkcja, która została sprawdzona.

Zwroty

profilebegin

()

Rozpoczyna profilowanie dla etykiety MicroProfiler.

Parametry

label: string

Tekst, który ten Mikroprofilownik etykieta wyświetla.

Zwroty

()

profileend

()

Zatrzymuje profilowanie dla najnowszej etykiety MicroProfiler, którą debug.profilebegin() otwarto.

Zwroty

()

getmemorycategory

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

Zwroty

kategoriapamięci aktywna dla obecnego wątku.

setmemorycategory

Nadaje niestandardową nazwę tagu kategorii pamięci obecnego wątku w konsoli programisty Developer Console.Przydatne do analizy zużycia pamięci wielu wątków w tym samym skrypcie, które w przeciwnym razie zostaną zgrupowane pod tym samym tagiem/nazwą.Zwraca nazwę poprzedniej kategoriapamięci obecnego wątku.

Parametry

tag: string

Zwroty

Poprzednia kategoria pamięci obecnego wątku.

resetmemorycategory

()

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

Zwroty

()

dumpcodesize

()

Wyświetla tabelę rozmiaru kodu natywnego poszczególnych funkcji i skryptów.Funkcja ta jest dostępna tylko w pasku poleceń w Studio.Więcej szczegółów można znaleźć na stronie Generowanie kodu natywnego.

Zwroty

()