Подтвердить что ты не робот

Lua equiv из __LINE__ и __FILE__?

Мне очень нравится C __LINE__ и __FILE__... lua предоставляет что-то подобное? (Я нахожу это полезным для отслеживания printf..., чтобы узнать, какой файл и из какой строки приходит сообщение).

Спасибо!

4b9b3361

Ответ 1

function __FILE__() return debug.getinfo(2,'S').source end
function __LINE__() return debug.getinfo(2, 'l').currentline end

Untested, кредит идет здесь.

Ответ 2

Я использую что-то вроде этого для получения номера строки со стороны 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.