2010-05-06 11 views
10

मुझे वास्तव में सी __LINE__ और __FILE__ पसंद है ... क्या लुआ कुछ समान प्रदान करता है? (मुझे यह पता लगाने के लिए कि कौन सी फाइल और कौन सी पंक्ति संदेश आती है) को प्रिंट करने के लिए उपयोगी लगता है।__LINE__ और __FILE__ का लुआ इक्विव?

धन्यवाद!

उत्तर

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

अनचाहे, credit goes here

+2

ध्यान दें कि डबल अंडरस्कोर से शुरू होने वाले वैश्विक प्रतीकों का नाम देना आम तौर पर एक बुरा विचार है। ऐसे नाम आमतौर पर भाषा कार्यान्वयन से संबंधित होते हैं। –

2

मैं ग की ओर से लाइन नंबर प्राप्त करने के लिए कुछ इस तरह का उपयोग करें:

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 कॉलिंग lua_Debug struct के स्रोत क्षेत्र भर जाएगा, हालांकि यह हमेशा एक फ़ाइल नाम नहीं हो सकता है IIRC।

संबंधित मुद्दे