【问题标题】:Finding a line that was called [duplicate]找到一条被称为 [重复] 的行
【发布时间】:2011-04-03 20:41:28
【问题描述】:

可能重复:
current line number in Lua

是否有可能找到调用指定函数的行?

【问题讨论】:

    标签: lua


    【解决方案1】:

    这里似乎已经回答了这个问题:current line number in Lua

    【讨论】:

      【解决方案2】:

      不是 Lua 特有的,但如果你知道它是什么函数,你可以在它被调用之前放置一个调试消息。

      可能有某种我不知道的特定于 Lua 的调试。

      样本

      之前:

      myFunc(param1);
      myFunc(param2);
      myFunc(param3);
      

      之后:

      io.write("About to call myFunc the first time");
      myFunc(param1);
      io.write("About to call myFunc the second time");
      myFunc(param2);
      io.write("About to call myFunc the third time");
      myFunc(param3);
      

      显然,您可以使用比这更有意义的调试消息。

      【讨论】:

      • Lua 不是首字母缩写词,顺便说一句。还有,你是什么意思?
      • @John 我不知道,谢谢!我会尝试提出一个代码示例......我认为它是相当不言自明的:P
      【解决方案3】:

      您可以尝试print(debug.traceback()),这将为您提供调用它的堆栈。从那里你可以找到调用你的函数以及它是哪一行。

      【讨论】:

        【解决方案4】:

        正确的方法是使用调试库的getinfo,使用级别2

        line_of_caller = debug.getinfo(2,"l").currentline
        

        【讨论】:

          猜你喜欢
          • 2014-10-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-29
          • 1970-01-01
          • 2016-03-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多