Lua runtime

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Lua runtime

Denis Dos Santos Silva
Bem, gostaria de saber se é possível saber:

a) determinar o nome da function, linha, nome do arquivo ?

em C uso
__FUNCTION__
__LINE__
__FILE__

respectivamente


exemplo:
-- BOF
function soma(a, b)
  print('soma()');
  return (a+b);
end


soma(3,9);
-- EOF

Qualquer ajuda neste sentido é de bom grado.


--
Lua BR - http://groups.google.com/group/lua-br
---
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Lua runtime

Luiz Henrique de Figueiredo
> a) determinar o nome da function, linha, nome do arquivo ?
>
> em C uso
> __FUNCTION__
> __LINE__
> __FILE__

(Para que você quer essa informação?)

Experimente usar a biblioteca de debug:

function soma(a, b)
  print('soma()');
        local t=debug.getinfo(1)
        --for k,v in pairs(t) do print(k,v) end
        print(t.name)
        print(t.currentline)
        print(t.source:sub(2))
  return (a+b);
end


soma(3,9)

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Lua runtime

Denis Dos Santos Silva
In reply to this post by Denis Dos Santos Silva
Luiz respondendo a sua pergunta.

(Para que você quer essa informação?) 

a ideia é: logging/trace remoto (algo parecido com o syslogd do linux).


Em quinta-feira, 14 de maio de 2015 19:59:36 UTC-3, Denis Dos Santos Silva escreveu:
Bem, gostaria de saber se é possível saber:

a) determinar o nome da function, linha, nome do arquivo ?

em C uso
__FUNCTION__
__LINE__
__FILE__

respectivamente


exemplo:
-- BOF
function soma(a, b)
  print('soma()');
  return (a+b);
end


soma(3,9);
-- EOF

Qualquer ajuda neste sentido é de bom grado.


--
Lua BR - http://groups.google.com/group/lua-br
---
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Lua runtime

Denis Dos Santos Silva
In reply to this post by Denis Dos Santos Silva
compartilhando o resultado ( a versão 'com rede' foi suprimida pq pra reproduzir teria que ir mais coisas )

valeu

-- .'. -------------------------------------------------------- .'. --
getinfo = debug.getinfo;
sprintf = string.format;
xprint  = print;

function emulation(x)

local fn = sprintf('%s()', x.name);   -- __FUNCTION__
local fi = x.short_src; -- __FILE__
local ln = x.currentline; -- __LINE__

return sprintf( '[DEBUG] %s %s:%s', fn, fi, ln );

end


function soma(a, b)
xprint( emulation(getinfo(1)) );

return ( tonumber(a) + tonumber(b) );
end


soma(10, 19);


-- .'. -------------------------------------------------------- .'. --


Em quinta-feira, 14 de maio de 2015 19:59:36 UTC-3, Denis Dos Santos Silva escreveu:
Bem, gostaria de saber se é possível saber:

a) determinar o nome da function, linha, nome do arquivo ?

em C uso
__FUNCTION__
__LINE__
__FILE__

respectivamente


exemplo:
-- BOF
function soma(a, b)
  print('soma()');
  return (a+b);
end


soma(3,9);
-- EOF

Qualquer ajuda neste sentido é de bom grado.


--
Lua BR - http://groups.google.com/group/lua-br
---
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para mais opções, acesse https://groups.google.com/d/optout.