debug

Afficher les obsolètes

*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

  • traceback(message : string,level : number):string

    Renvoie une chaîne de format non défini qui décrit la pile d'appels de fonction actuelle.

  • traceback(thread : coroutine,message : string,level : number):string

    Renvoie une chaîne de format non défini qui décrit la pile d'appels de fonction actuelle.

  • info(level : number,options : string):Tuple

    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.

  • info(function : function,options : string):Tuple

    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.

  • info(thread : coroutine,level : number,options : string):Tuple

    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.

  • profilebegin(label : string):()

    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

message: string

La première ligne de la chaîne renvoyée.

level: number

Le nombre d'appels "en haut" de la pile d'appels à renvoyer.

Valeur par défaut : 1

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

thread: coroutine

Un thread comme retourné par coroutine.create().

message: string

La première ligne de la chaîne renvoyée.

level: number

Le nombre d'appels "en haut" de la pile d'appels à renvoyer.

Valeur par défaut : 1

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

level: number

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.

options: string

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.
  • l ( nombre ) — Le numéro de ligne de l'appel de fonction représenté par level .
  • 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é.
  • a ( nombre , booléen ) — L'arithmétique de la fonction, qui se réfère au nombre de paramètres et si la fonction est variatique.
  • 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

function: function

La fonction de la pile d'appels dont les informations retournées doivent décrire.

options: string

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.
  • l ( nombre ) — La ligne sur laquelle function 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é.
  • a ( nombre , booléen ) — L'arithmétique de la fonction, qui se réfère au nombre de paramètres et si la fonction est variatique.
  • 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

thread: coroutine

Un thread comme retourné par coroutine.create().

level: number

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.

options: string

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.
  • l ( nombre ) — Le numéro de ligne de l'appel de fonction représenté par level .
  • 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é.
  • a ( nombre , booléen ) — L'arithmétique de la fonction, qui se réfère au nombre de paramètres et si la fonction est variatique.
  • f ( fonction ) — La fonction qui a été inspectée.

Retours

profilebegin

()

Commence à profiler pour une étiquette MicroProfiler.

Paramètres

label: string

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

()

getmemorycategory

Renvoie la catégorie de mémoire active de la colonne actuelle du fil.

Retours

La catégorie de mémoire active de la colonne actuelle du fil.

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

tag: string

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.

Retours

()