2010-03-31 19 views

Respuesta

45

De Lua usando debug.getinfo, por ejemplo,

local line = debug.getinfo(1).currentline 

De lua_getinfo C utilizando una función de variable llamada _G, pero no veo número de línea en especial allí ... (Esto devolverá el interior LineNumber código lua)

lua_Debug ar; 
    lua_getstack(L, 1, &ar); 
    lua_getinfo(L, "nSl", &ar); 
    int line = ar.currentline 

http://www.lua.org/manual/5.1/manual.html#lua_getinfo

http://www.lua.org/manual/5.1/manual.html#pdf-debug.getinfo

+0

¿Funcionaría lo anterior así ?: io.write (línea "Error on line") – qroberts

+1

Funciona en Lua 5.3. Obtuve errores de infracción de acceso en Windows. ¿Funciona también para los casos cuando se ejecuta un script como un archivo y en una variable (llamadas de dos dígitos y de informe)? – TrustyCoder

+0

@TrustyCoder Tuve el mismo problema. Esto solo funciona dentro de una implementación C de una función lua. NO funciona después de una llamada tratando de ver qué salió mal, también recibí excepciones. (Así que hice que mi función error-handlers incluyera esta información en su cadena de error). –

Cuestiones relacionadas