Ответ 1
function __FILE__() return debug.getinfo(2,'S').source end
function __LINE__() return debug.getinfo(2, 'l').currentline end
Untested, кредит идет здесь.
Мне очень нравится C __LINE__
и __FILE__
... lua предоставляет что-то подобное? (Я нахожу это полезным для отслеживания printf..., чтобы узнать, какой файл и из какой строки приходит сообщение).
Спасибо!
function __FILE__() return debug.getinfo(2,'S').source end
function __LINE__() return debug.getinfo(2, 'l').currentline end
Untested, кредит идет здесь.
Я использую что-то вроде этого для получения номера строки со стороны c:
int lua_getline(lua_State* L, int level) {
lua_Debug ar;
lua_getstack(L, level, &ar);
lua_getinfo(L, "l", &ar);
return ar.currentline;
}
Вызов lua_getinfo с "lS" заполнит исходное поле структуры lua_Debug, хотя это может быть не всегда имя файла. IIRC.