32
Lua có hỗ trợ điều gì đó giống như macro __LINE__
của C, trả về số dòng mã hiện tại không? Tôi biết Lua có một built-in biến gọi là _G
, nhưng tôi không thấy số dòng trong đó ...số dòng hiện tại trong Lua
Lua có hỗ trợ điều gì đó giống như macro __LINE__
của C, trả về số dòng mã hiện tại không? Tôi biết Lua có một built-in biến gọi là _G
, nhưng tôi không thấy số dòng trong đó ...số dòng hiện tại trong Lua
Từ Lua sử dụng debug.getinfo, ví dụ:
local line = debug.getinfo(1).currentline
Từ C sử dụng lua_getinfo đặc biệt (Điều này sẽ trả lại linenumber bên trong mã lua)
lua_Debug ar;
lua_getstack(L, 1, &ar);
lua_getinfo(L, "nSl", &ar);
int line = ar.currentline
Công việc trên có giống như thế này không ?: io.write ("Lỗi trên dòng" .. dòng) – qroberts
Tính năng này có hoạt động trên Lua 5.3 không. Tôi đã nhận được lỗi vi phạm quyền truy cập trong Windows. Cũng làm việc cho các trường hợp khi thực hiện kịch bản như một tập tin và trong một biến (dofile và doscript cuộc gọi)? – TrustyCoder
@TrustyCoder Tôi gặp vấn đề tương tự. Điều này chỉ hoạt động bên trong một C thực hiện một hàm lua. Nó không làm việc sau khi một pcall cố gắng để xem những gì đã đi sai, tôi đã nhận ngoại lệ quá. (Vì vậy, tôi đã thực hiện chức năng xử lý lỗi của tôi bao gồm thông tin này trong chuỗi lỗi của họ). –