Mòdul:SimpleDebug/ús
Aquesta és una subpàgina de documentació per a la Mòdul:SimpleDebug Té la informació d'ús, les categories i qualsevol altre contingut que no forma part essencial del codi del mòdul. |
Conté funcions per ajudar a depurar els mòduls lua. Permet recollir i visualitzar els valors de diverses variables i/o punts del vostre programa lua, des d'un mòdul (que és l'habitual) o en diversos mòduls (que són requerits des del mòdul principal).
Està dissenyat perquè les seves funcions siguin cridades des de dins del mòdul que es vol depurar, crides que hauran de formar part del codi (del mòdul que heu dissenyat, o que vol millorar o adaptar) fins que decidiu eliminar-les (quan ja hàgiu determinat l'error). Així, no s'ha de cridar cap de les seves funcions amb un invoke.
Usos modifica
Un o diversos punts a veure | ||
---|---|---|
Abreviacions de les funcions: w: where (on). n: names (noms). v: variables. s: string (cadena). | ||
Variables | ||
Nom | Per defecte | |
tab.oneline |
true |
|
tab.allidx |
false |
Si és true, també mostra els índexs numèrics d'una taula. |
dec |
-1 |
Espais pels decimals:
|
enabled |
true |
Si és false, totes les crides a les funcions següents no fan res. |
nohtml |
false |
Substitueix < per ⪡ i > per ⪢ a les cadenes. |
plaintext |
false |
Elimina el format html. |
Un punt a veure | ||
Funcions | ||
w (where) |
| |
v (...) |
| |
wv (where, ...) |
| |
nv (...) |
| |
wnv (where, ...) |
| |
Diversos punts a veure | ||
Variables | ||
Nom | Per defecte | |
s |
La variable de cadena que conté els valors retornats de les funcions següents. | |
maxlines.num |
100 |
Nombre màxim de línies (en cridar a les funcions següents). |
maxlines.doerror |
true |
Si és veritat i s’arriba a |
counter |
false |
Afegeix un número autoincremental al principi de cada utilització d'una funció. |
Funcions | ||
breakline () |
Afegeix un retorn de línia a | |
wtos (where) |
Igual a | |
vtos (...) |
Igual a | |
wvtos (where, ...) |
Igual a | |
nvtos (...) |
Igual a | |
wnvtos (where, ...) |
Igual a |
Exemples modifica
Un punt a veure modifica
Seguint el flux modifica
local SD = require "Module:SimpleDebug"
return SD.w ("S'ha passat per aquí")
retorna:
S'ha passat per aquí
Nombre de decimals i valor d'una variable modifica
local SD = require "Module:SimpleDebug"
SD.dec = 2
return SD.v (1/3)
retorna:
0.33
Nohtml modifica
local SD = require "Module:SimpleDebug"
SD.nohtml = true
return SD.v ("<b>bold</b>")
retorna:
"⪡b⪢bold⪡/b⪢"
Plaintext modifica
local SD = require "Module:SimpleDebug"
SD.plaintext = true
return SD.v ("<b>bold</b>")
retorna:
"bold"
El valor de diverses variables modifica
local SD = require "Module:SimpleDebug"
local a = 12
local b = 'Hola'
return SD.v (a,b)
retorna:
12 • "Hola"
Detecció de variable no assignada modifica
local SD = require "Module:SimpleDebug"
local a = true
return SD.v (a,b)
retorna:
true • nil
El valor d'una taula modifica
local SD = require "Module:SimpleDebug"
local a = {1, tab='a', 'b'}
return SD.v (a)
retorna: { 1, "b", [tab]="a", }
local SD = require "Module:SimpleDebug"
local a = {{1,2,3},{4,5,6},{7,8,9}}
return SD.v (a)
retorna:
{ [1] = {1, 2, 3, }, [2] = {4, 5, 6, }, [3] = {7, 8, 9, }, }
local SD = require "Module:SimpleDebug"
local a = {{Primer=1,2,3},{4,Segon=5,6},{7,8,9}}
return SD.v (a)
retorna:
{ [1] = {2, 3, [Primer]=1, }, [2] = {4, 6, [Segon]=5, }, [3] = {7, 8, 9, }, }
local SD = require "Module:SimpleDebug"
SD.tab.allidx = true
local a = {{1,2,3},{4,nil,6},{7,8,9}}
return SD.v (a)
retorna:
{ [1]={[1]=1, [2]=2, [3]=3, }, [2]={[1]=4, [3]=6, }, [3]={[1]=7, [2]=8, [3]=9, }, }
Normalment, implementareu aquestes funcions amb funció d'error:
local SD = require "Module:SimpleDebug"
local a = {{1,2,3},{4,5,6},{7,8,9}}
error (SD.v (a))
mostra:
Error de Lua: Mòdul:VostreMòdul:Línia: {
[1] = {1, 2, 3, }, [2] = {4, 5, 6, }, [3] = {7, 8, 9, }, }
El valor d'una taula, tota en multilínia modifica
local SD = require "Module:SimpleDebug"
SD.tab.oneline = false
local a = {{Primer=1,2,3},'Enmig',{4,Segon=5,6}}
return SD.v (a)
retorna:
{ [1] = { [1] = 2, [2] = 3, ["Primer"] = 1, }, [2] = "Enmig", [3] = { [1] = 4, [2] = 6, ["Segon"] = 5, }, }
El valor de diverses variables amb seu nom en un punt modifica
local SD = require "Module:SimpleDebug"
local a = 12
local b = 'Hola'
return SD.nv ('a',a,'b',b)
retorna:
a: 12 • b: "Hola"
Diversos punts a veure modifica
Seguint el flux modifica
local SD = require "Module:SimpleDebug"
local tab = {1,12,7}
function p.CheckValues ()
local function LittleNum()
SD.wtos ('número petit')
end
local function BigNum(num)
SD.wtos ('gran='..num)
end
for i, num in ipairs(tab) do
if num > 9 then
BigNum(num)
else
LittleNum()
end
end
error (SD.s)
end
retorna:
Error de Lua: Mòdul:VostreMòdul:Línia:
número petit
gran=12
número petit.
Amb comptador modifica
local SD = require "Module:SimpleDebug"
function Increm()
local n = 0
for i = 1, 3 do
n = n + 2
SD.vtos (n)
end
end
SD.counter = true
Increm()
return SD.s
retorna:
1 • 2
2 • 4
3 • 6
Seguiment de diverses variables modifica
local SD = require "Module:SimpleDebug"
a = 12
b = 'Hola'
SD.wvtos (1,a,b)
a = a + a
b = b..' món!'
SD.wvtos ('Finalment',a,b)
return SD.s
retorna:
1 => 12 • "Hola"
Finalment => 24 • "Hola món!"
local SD = require "Module:SimpleDebug"
SD.breakline ()
a = 12
b = 'Hola'
c = false
SD.wnvtos (1, 'a',a,'b',b,'c',c)
a = a + a
b = b..' món!'
SD.wnvtos ('Finalment', 'a',a,'b',b)
error (SD.s)
mostra:
Error de Lua: Mòdul:VostreMòdul:Línia:
1 => a: 12 • b: "Hola" • c: false
Finalment => a: 24 • b: "Hola món!"
Variables i la seva presentació amb condicions modifica
local SD = require "Module:SimpleDebug"
SD.breakline()
SD.enabled = false
SD.maxlines.num = 3
local a = 'AA'
for i = 1, 10 do
a = a + 'AA'
if i == 3 then
SD.enabled = true
end
SD.wvtos (i, string.len(a), a)
end
mostra:
Error de Lua: Mòdul:VostreMòdul:Línia:
3 => 8 • "AAAAAAAA"
4 => 10 • "AAAAAAAAAA"
5 => 12 • "AAAAAAAAAAAA".