debug
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Fournit quelques fonctions de base pour déboguer le code dans Roblox. Contrairement à la bibliothèque debug trouvée dans le Lua natif, cette version a été fortement sandboxée.
Résumé
Fonctions
Renvoie une chaîne de format non définie qui décrit le pilier de fonction actuel.
Renvoie une chaîne de format non définie qui décrit le pilier de fonction actuel.
Traverse l'ensemble du stack de la colonne actuelle et renvoie une chaîne contenant le call stack des détails de niveau cible.
Traverse l'ensemble du stack de la colonne actuelle et renvoie une chaîne contenant le call stack des détails de la fonction cible.
Traverse l'ensemble du pilier de la cible et renvoie une chaîne contenant le call stack des détails du niveau de la cible.
Démarre le profilage pour une étiquette.
Arrête le profilage pour la dernière étiquette qui a ouvert debug.profilebegin().
Renvoie le nom de la catégorie de mémoire active du filtre actuel.
Attribue une balise personnalisée à la catégorie de mémoire du fil actuel.
Réinitialise la balise attribuée par debug.setmemorycategory() à la valeur attribuée automatiquement (généralement, le nom du script).
Affiche une table de taille du code natif des fonctions et des scripts individuels.
Fonctions
traceback
Renvoie unTraceback de la pile de fonctions actuelle comme une chaîne ; en d'autres termes, une description des fonctions qui ont été appelées jusqu'à ce point. Lors du débogage, cela se comporte comme unTraceback d'erreur mais ne bloque pas l'exécution du script.
Le level參數指定要考慮的呼叫堆的程度,1 是呼叫 debug.traceback() 本身,1>21> 是呼叫 4>Library. débugger. traceback4> 的函數調用,等等。Voir le code de例 ci-dessous pour un exemple de fonctions séquentielles.
Notez que cette fonction renverra souvent des résultats inexacts (par rapport au code source original) et que le format duTraceback renvoyé peut changer à tout moment. Vous ne devriez pas pas analyser la valeur renvoyée pour des informations spécifiques telles que les noms des scripts ou les numéros de ligne.
L'exemple suivant inclut des fonctions séquentielles ; fnB() est appelé, et il appelle fnA() qui appelle debug.traceback() .
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Appeler la fonction dlB() pour commencer le traceback
fnB()
Paramètres
Retours
Traceback de la pile des appelsfonctions actuelle.
traceback
Renvoie unTraceback de la pile de fonctions actuelle comme une chaîne ; en d'autres termes, une description des fonctions qui ont été appelées jusqu'à ce point. Lors du débogage, cela se comporte comme unTraceback d'erreur mais ne bloque pas l'exécution du script.
Le level參數指定要考慮的呼叫堆的程度,1 是呼叫 debug.traceback() 本身,1>21> 是呼叫 4>Library. débugger. traceback4> 的函數調用,等等。Voir le code de例 ci-dessous pour un exemple de fonctions séquentielles.
Notez que cette fonction renverra souvent des résultats inexacts (par rapport au code source original) et que le format duTraceback renvoyé peut changer à tout moment. Vous ne devriez pas pas analyser la valeur renvoyée pour des informations spécifiques telles que les noms des scripts ou les numéros de ligne.
L'exemple suivant inclut des fonctions séquentielles ; fnB() est appelé, et il appelle fnA() qui appelle debug.traceback() .
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Appeler la fonction dlB() pour commencer le traceback
fnB()
Paramètres
Un thread comme renvoyé par coroutine.create() .
La première ligne de la chaîne renvoyée.
Le nombre de votes « up » le call stack pour renvoyer.
Retours
Traceback de la pile des appelsfonctions actuelle.
info
Permet d'inspecter programmiquement le pilote de l'appil. Cette fonction diffère de debug.traceback() dans la mesure où elle garantit le format des données qu'elle renvoie. Cela est utile pour les besoins généraux de suivi et de filtrage, ainsi que pour l'envoi des données aux systèmes qui attendent un entrée structurée, telle que la mise en réseau des cras.
local function fnA()
-- Identifiant de la source de sortie ("s") et ligne ("l") au niveau 1 et 2
print(debug.info(1, "sl")) --> fonA() 3
print(debug.info(2, "sl")) --> fonA() 7
end
fnA()
Notez que cette fonction est similaire à débugger.getinfo, une partie non disponible de la bibliothèque Lua standard qui sert à un but similaire.
Paramètres
Détermine à quel niveau de la pile de call le renvoi d'informations doit décrire. Une valeur de 1 représente la fonction qui est en cours d'appel, une valeur de debug.info() représente la fonction qui a appelé cette fonction, et ainsi de suite.
Une chaîne qui décrit ce que les informations renvoyées devraient représenter. Elle doit contenir seulement 0 ou 1 instances des personnages slnaf , chacun représentant une pièce d'information :
- s ( chaîne ) — L'identifiant de la source de la fonction, équivalent au nom complet du script dans lequel la fonction est définie.
- n ( string ) — Le nom de la fonction ; peut être nil pour les fonctions anonymes et les fonctions C sans nom de débogage attribué.
- f ( fonction) ) — La fonction qui a été inspectée.
Retours
info
Permet d'inspecter programmiquement le pilote de l'appil. Cette fonction diffère de debug.traceback() dans la mesure où elle garantit le format des données qu'elle renvoie. Cela est utile pour les besoins généraux de suivi et de filtrage, ainsi que pour l'envoi des données aux systèmes qui attendent un entrée structurée, telle que la mise en réseau des cras.
local function fnA()
end
local function fnB()
end
-- La ligne de sortie ("l"), le nom ("n") et l'identifiant ("f") pour les deux fonctions fondeA() et fondeB()
print(debug.info(fnA, "lnf")) --> 1 fonctions fnA : 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2
Notez que cette fonction est similaire à débugger.getinfo, une partie non disponible de la bibliothèque Lua standard qui sert à un but similaire.
Paramètres
La fonction de la pile d'appels qui doit être renvoyée doit décrire.
Une chaîne qui décrit ce que les informations renvoyées devraient représenter. Elle doit contenir seulement 0 ou 1 instances des personnages slnaf , chacun représentant une pièce d'information :
- s ( chaîne ) — L'identifiant de la source de la fonction, équivalent au nom complet du script dans lequel la fonction est définie.
- n ( string ) — Le nom de la fonction ; peut être nil pour les fonctions anonymes et les fonctions C sans nom de débogage attribué.
- f ( fonction) ) — La fonction qui a été inspectée.
Retours
info
Permet d'inspecter programmiquement le pilote de l'appil. Cette fonction diffère de debug.traceback() dans la mesure où elle garantit le format des données qu'elle renvoie. Cela est utile pour les besoins généraux de suivi et de filtrage, ainsi que pour l'envoi des données aux systèmes qui attendent un entrée structurée, telle que la mise en réseau des cras.
local function fnA()
-- Identifiant de la source de sortie ("s") et ligne ("l") au niveau 1 et 2
print(debug.info(1, "sl")) --> fonA() 3
print(debug.info(2, "sl")) --> fonA() 7
end
fnA()
Notez que cette fonction est similaire à débugger.getinfo, une partie non disponible de la bibliothèque Lua standard qui sert à un but similaire.
Paramètres
Un thread comme renvoyé par coroutine.create() .
Détermine à quel niveau de la pile de call le renvoi d'informations doit décrire. Une valeur de 1 représente la fonction qui est en cours d'appel, une valeur de debug.info() représente la fonction qui a appelé cette fonction, et ainsi de suite.
Une chaîne qui décrit ce que les informations renvoyées devraient représenter. Elle doit contenir seulement 0 ou 1 instances des personnages slnaf , chacun représentant une pièce d'information :
- s ( chaîne ) — L'identifiant de la source de la fonction, équivalent au nom complet du script dans lequel la fonction est définie.
- n ( string ) — Le nom de la fonction ; peut être nil pour les fonctions anonymes et les fonctions C sans nom de débogage attribué.
- f ( fonction) ) — La fonction qui a été inspectée.
Retours
profilebegin
Démarre le profilage pour une étiquette MicroProfiler.
Paramètres
Le texte que cette étiquette MicroProfiler affiche.
Retours
setmemorycategory
Attribue un nom de tag personnalisé à la catégorie de mémoire du fil actuel dans la Developer Console. Utile pour analyser l'utilisation de la mémoire de plusieurs fils dans le même script qui serait autrement groupé sous le même tag/nom. Renvoie le nom de la catégorie de mémoire actuelle.
Paramètres
Retours
La catégorie de mémoire précédente du fil actuel.
resetmemorycategory
Réinitialise la balise attribuée par debug.setmemorycategory() à la valeur attribuée automatiquement (généralement, le nom du script).
Retours
dumpcodesize
Affiche une table de taille du code natif des fonctions et des scripts individuels. Cette fonction n'est disponible que dans la barre de commandes dans Studio. Plus de détails peuvent être trouvés sur la page génération du code natif.