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 du code dans Roblox.Contrairement à la bibliothèque debug trouvée dans Lua nativement, cette version a été fortement sandboxée.
Résumé
Fonctions
Renvoie une chaîne de format non défini qui décrit la pile d'appels de fonction actuelle.
Renvoie une chaîne de format non défini qui décrit la pile d'appels de fonction actuelle.
Traverse l'ensemble de la pile de thread actuel et renvoie une chaîne contenant la pile d'appels des détails du niveau cible.
Traverse l'ensemble de la pile de thread actuel et renvoie une chaîne contenant la pile d'appels des détails de la fonction cible.
Traverse l'ensemble de la pile de thread cible et renvoie une chaîne contenant la pile d'appels des détails du niveau cible.
Commence à profiler pour une étiquette.
Arrête la profilage pour l'étiquette la plus récente que debug.profilebegin() a ouverte.
Renvoie la catégorie de mémoire active de la colonne actuelle du fil.
Attribue une balise personnalisée à la catégorie de mémoire du filactuel.
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 la taille du code natif des fonctions et des scripts individuels.
Fonctions
traceback
Renvoie une trace de l'appel de fonction actuel en tant que chaîne ; en d'autres termes, une description des fonctions qui ont été appelées jusqu'à ce point.Pendant le débogage, cela se comporte comme une trace d'empilement d'erreurs mais n'arrête pas l'exécution du script.
Le paramètre level spécifie le niveau de la pile d'appels à prendre en compte, avec 1 étant l'appel de debug.traceback() lui-même, 2 étant l'appel de la fonction appelant debug.traceback() , et ainsi de suite.Voir l'exemple de code ci-dessous pour un exemple d'appels de fonctions séquentielles.
Notez que cette fonction retournera souvent des résultats inexacts (par rapport au code source original) et que le format du traceback retourné peut changer à tout moment.Vous ne devriez pas pas analyser la valeur de retour pour des informations spécifiques telles que les noms de scripts ou les numéros de ligne.
L'exemple suivant inclut des appels de fonctions séquentielles ; fnB() est appelé et appelle fnA() qui appelle ensuite debug.traceback() .
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Appellez la fonction fnB() pour commencer la recherche d'origine
fnB()
Paramètres
Retours
Suivi de la pile d'appels fonctionnels actuelle.
traceback
Renvoie une trace de l'appel de fonction actuel en tant que chaîne ; en d'autres termes, une description des fonctions qui ont été appelées jusqu'à ce point.Pendant le débogage, cela se comporte comme une trace d'empilement d'erreurs mais n'arrête pas l'exécution du script.
Le paramètre level spécifie le niveau de la pile d'appels à prendre en compte, avec 1 étant l'appel de debug.traceback() lui-même, 2 étant l'appel de la fonction appelant debug.traceback() , et ainsi de suite.Voir l'exemple de code ci-dessous pour un exemple d'appels de fonctions séquentielles.
Notez que cette fonction retournera souvent des résultats inexacts (par rapport au code source original) et que le format du traceback retourné peut changer à tout moment.Vous ne devriez pas pas analyser la valeur de retour pour des informations spécifiques telles que les noms de scripts ou les numéros de ligne.
L'exemple suivant inclut des appels de fonctions séquentielles ; fnB() est appelé et appelle fnA() qui appelle ensuite debug.traceback() .
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Appellez la fonction fnB() pour commencer la recherche d'origine
fnB()
Paramètres
Un thread comme retourné par coroutine.create().
La première ligne de la chaîne renvoyée.
Le nombre d'appels "en haut" de la pile d'appels à renvoyer.
Retours
Suivi de la pile d'appels fonctionnels actuelle.
info
Permet une inspection programmatique de la pile d'appels.Cette fonction diffère de debug.traceback() en ce qu'elle garantit le format des données qu'elle renvoie.Cela est utile pour des fins générales de journalisation et de filtrage ainsi que pour l'envoi des données vers des systèmes qui attendent une entrée structurée, comme l'agrégation de crash.
local function fnA()
-- Identifiant de source de sortie ("s") et ligne ("l") aux niveaux 1 et 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()
Notez que cette fonction est similaire à débugger.getinfo, une partie non disponible de la bibliothèque Lua standard qui a un but similaire.
Paramètres
Détermine au niveau de quelle pile d'appels l'information retournée doit être décrite.Une valeur de 1 représente la fonction qui appelle debug.info(), une valeur de 2 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.Il ne doit contenir que 0 ou 1 instances des caractères slnaf, chacune représentant une pièce d'information :
- s ( chaîne ) — L'identifiant de source de la fonction, égal au nom complet du script dans lequel la fonction est définie.
- n ( chaîne ) — 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 une inspection programmatique de la pile d'appels.Cette fonction diffère de debug.traceback() en ce qu'elle garantit le format des données qu'elle renvoie.Cela est utile pour des fins générales de journalisation et de filtrage ainsi que pour l'envoi des données vers des systèmes qui attendent une entrée structurée, comme l'agrégation de crash.
local function fnA()
end
local function fnB()
end
-- Ligne de sortie ("l"), nom ("n") et identifiant ("f") pour fnA() et fnB()
print(debug.info(fnA, "lnf")) --> 1 fonction 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 a un but similaire.
Paramètres
La fonction de la pile d'appels dont les informations retournées doivent décrire.
Une chaîne qui décrit ce que les informations renvoyées devraient représenter.Il ne doit contenir que 0 ou 1 instances des caractères slnaf, chacune représentant une pièce d'information :
- s ( chaîne ) — L'identifiant de source de la fonction, égal au nom complet du script dans lequel la fonction est définie.
- n ( chaîne ) — 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 une inspection programmatique de la pile d'appels.Cette fonction diffère de debug.traceback() en ce qu'elle garantit le format des données qu'elle renvoie.Cela est utile pour des fins générales de journalisation et de filtrage ainsi que pour l'envoi des données vers des systèmes qui attendent une entrée structurée, comme l'agrégation de crash.
local function fnA()
-- Identifiant de source de sortie ("s") et ligne ("l") aux niveaux 1 et 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()
Notez que cette fonction est similaire à débugger.getinfo, une partie non disponible de la bibliothèque Lua standard qui a un but similaire.
Paramètres
Un thread comme retourné par coroutine.create().
Détermine au niveau de quelle pile d'appels l'information retournée doit être décrite.Une valeur de 1 représente la fonction qui appelle debug.info(), une valeur de 2 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.Il ne doit contenir que 0 ou 1 instances des caractères slnaf, chacune représentant une pièce d'information :
- s ( chaîne ) — L'identifiant de source de la fonction, égal au nom complet du script dans lequel la fonction est définie.
- n ( chaîne ) — 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
Commence à profiler pour une étiquette MicroProfiler.
Paramètres
Le texte que cette étiquette MicroProfiler affiche.
Retours
profileend
Arrête la profilisation pour l'étiquette MicroProfiler la plus récente qui a été ouverte.
Retours
setmemorycategory
Attribue un nom de tag personnalisé à la catégorie de mémoire du filactuel dans la console du développeur.Utile pour analyser l'utilisation de la mémoire de plusieurs colonnes dans le même script qui seraient autrement regroupées sous le même tag/nom.Renvoie le nom de la catégorie de mémoire précédente de la filactuelle.
Paramètres
Retours
La catégorie de mémoire précédente de la colonne de discussion actuelle.
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 la taille du code natif des fonctions et des scripts individuels.Cette fonction n'est disponible que dans la barre de commande dans Studio.Plus de détails peuvent être trouvés sur la page génération de code natif.