io.open() 
import debug

//注册一个新的调试钩子
dbg = debug.hook()

//每行代码触发
dbg.line=function(line){

    io.print( "line",line )
    
    //可用类似sql语法查询调试信息
    var info = debug.queryinfo(2,"select source,function,upvars,name,currentline,activelines")
    io.print( info.name,info.name_where /* ,info.source.code*/ )

}

//调用函数触发
dbg.call=function(){
	io.print( "call" )
}

//返回值触发
dbg.return=function(line){
	io.print( "return" )
}

//尾调服触发
dbg.tailreturn=function(line){
	io.print( "tailreturn" )
}

function func(){
    
}
func()
io.print("aaa") 

dbg.line=null; //注销一个钩子函数
dbg.call=null; //注销一个钩子函数
dbg.return=null; //注销一个钩子函数
dbg.tailreturn=null; //注销一个钩子函数
 
execute("pause") //按任意键继续
io.close();//关闭控制台
