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 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

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

    Renvoie une chaîne de format non définie qui décrit le pilier de fonction actuel.

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

    Renvoie une chaîne de format non définie qui décrit le pilier de fonction actuel.

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

    Traverse l'ensemble du stack de la colonne actuelle et renvoie une chaîne contenant le call stack des détails de niveau cible.

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

    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.

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

    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.

  • profilebegin(label : string):void

    Démarre le profilage pour une étiquette.

  • profileend():void

    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

message: string

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

level: number

Le nombre de votes « up » le call stack pour renvoyer.

Valeur par défaut : 1

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

thread: coroutine

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

message: string

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

level: number

Le nombre de votes « up » le call stack pour renvoyer.

Valeur par défaut : 1

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

level: number

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.

options: string

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.
  • l ( numéro ) — Le numéro de ligne de la fonction représentée par level .
  • n ( string ) — 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 ) — Arité de la fonction, qui se réfère au nombre de paramètres et si la fonction est variante.
  • 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

function: function

La fonction de la pile d'appels qui doit être renvoyée doit décrire.

options: string

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.
  • l ( numéro ) — La ligne sur laquelle function 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é.
  • a ( nombre , bool ) — Arité de la fonction, qui se réfère au nombre de paramètres et si la fonction est variante.
  • 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

thread: coroutine

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

level: number

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.

options: string

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.
  • l ( numéro ) — Le numéro de ligne de la fonction représentée par level .
  • n ( string ) — 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 ) — Arité de la fonction, qui se réfère au nombre de paramètres et si la fonction est variante.
  • f ( fonction) ) — La fonction qui a été inspectée.

Retours

profilebegin

void

Démarre le profilage pour une étiquette MicroProfiler.

Paramètres

label: string

Le texte que cette étiquette MicroProfiler affiche.

Retours

void

profileend

void

Arrête le profilage pour la dernière étiquette MicroProfiler qui s'ouvre.

Retours

void

getmemorycategory

Renvoie le nom de la catégorie de mémoire active du filtre actuel.

Retours

La catégorie de mémoire active de la filactuelle.

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

tag: string

Retours

La catégorie de mémoire précédente du fil actuel.

resetmemorycategory

void

Réinitialise la balise attribuée par debug.setmemorycategory() à la valeur attribuée automatiquement (généralement, le nom du script).

Retours

void

dumpcodesize

void

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.

Retours

void