LuaTools调试工具——学会帮你解决大部分问题!

在物联网开发领域,调试工具的重要性不言而喻。LuaTools调试工具,以其强大的功能和简便的操作,成为了开发者们的得力助手。本文特别分享LuaTools日志相关内容,大家一起学起来吧~

LuaTools新版下载/使用教程:

https://docs.openluat.com/Luatools/

一、LuaTools日志分类

LuaTools包括4种日志:工具本身的日志、用户日志、底层日志、死机日志。

1. 工具本身的日志

在工具目录/log/,main_当天日期.txt形式存在,记录工具本身工作中输出的日志,主要用于工具报错时查找错误原因。当天工具第一次打开,才会新建文件。

2. 用户日志

在工具目录/log/,trace_当天日期_首次记录时间.txt形式存在,记录了LuatOS里调用print、log等API输出的日志,LuatOS组件输出的部分日志,CSDK里调用luat_debug_print输出的日志,一般查看模组工作状态。在工具重新打开后,会新建文件。

3. 底层日志

在工具目录/log/4gdiag/,根据模块内SoC平台不同,会有不同的类型。

1)AP log

Air724系列模组(展锐平台),Air780/Air700系列模组及Air8000工业引擎模组(移芯平台)支持。当天日志_首次记录时间_固件类型_固件版本_SOC名称_IMEI_接收COM口号.bin形式存在,记录了SoC AP处理器(移芯包括了CP处理器)输出的所有log,当LuatOS日志无法定位问题时,需要用到,有时也会用于死机问题分析。

2)CP log

Air724系列模组(展锐平台)支持。xxx.tra形式存在,记录了soc CP处理器输出的所有log,当AP log都无法定位问题时,需要用到。

4. 死机日志

Air780/Air700系列模组及Air8000工业引擎模组(移芯平台)支持,目前有2类:

1)Ramdump

在工具目录/log/ramdump/,当天日志_首次记录时间_固件类型_固件版本_SOC名称_IMEI_接收COM口号_ramdump.bin形式存在,用于死机问题分析,必须开启AP log抓取,才能在死机时抓取ramdump。

2)Flashdump

在工具目录/log/flashdump/,这是移芯EC7XX独有功能。

二、LuaTools如何与EPAT共存

EPAT是底层日志工具,适用于Air780系列/Air700系列模组及Air8000工业引擎模组。

默认状态下,LuaTools会开启AP log和CP log抓取,由于移芯平台没有CP log,所以CP log项目没有影响。

但是EPAT抓底层log会和LuaTools抓AP log冲突,两者是同一个东西。因此,如果想用LuaTools查看用户日志,用EPAT查看底层log,需要将LuaTools抓取AP log的功能关闭。

新版本:LuaTools ->账户 ->工具配置;老版本:LuaTools ->工具 ->配置。

如下图所示,将打开AP LOG去掉勾选即可:


三、如何抓死机信息

Air780系列/Air700系列模组及Air8000工业引擎模组,LuaTools抓死机信息是自动进行的,只要保证AP log是正常抓取,也就是说EPAT不能开启,正常抓取完成后LuaTools有非常明显的提示文件存放位置。

如果LuaTools和EPAT并存,或者只开EPAT,那么需要用EPAT来保存log。

但是光靠死机信息不一定能找到问题点,因此需要提供全套文件包括:

死机前AP log,或者EPAT的log,注意要在死机发生前的。

Ramdump文件(或者flashdump文件,但是flashdump内容少,不一定有用),如果是EPAT抓的ramdump,则在保存成zip压缩包中时已经保存了。

SoC文件,如果是618的CSDK,则需要编译输出目录的xxx.elf,xxx.map,comdb.txt文件。

今天的分享就到这里了~

更多模组日志相关内容详见:

https://docs.openluat.com/howtouselog/

可以方便的将lua嵌入c++程序<br>能高效的存取lua变量<br>方便使用c++类扩展lua功能<br>支持 c++对象指针参数,返回值等等<br><br>//CreateClass<类型>([是否生成析构函数(默认=true)])<br> //Constructor<参数列表>([可选]构造函数名<lua不支持重载>)<br> //CreateMethod<返回值类型>(函数名,函数指针)<br> //CreateStaticMethod<返回值类型>(函数名,函数指针)<br> //默认生成释放函数Free<br> LContext.CreateClass<test2>()<br> .Constructor();<br> LContext.CreateClass<test>()<br> .Constructor()<br> .Constructor<test2*>("test_ptr")<br> .Constructor<int>()<br> .Constructor<const char*>("test_str")<br> .Constructor<int,int>()<br> .CreateMethod<int>("fn",test::fn)<br> .CreateMethod<int>("fn2",test::fn2)<br> .CreateMethod<void>("fn3",test::fn3)<br> .CreateMethod<void>("fn4",test::fn4)<br> .CreateStaticMethod<void>("test_fn",test_fn);//注册类静态方法<br> LContext.CreateStaticMethod<void>("test_fn",test_fn);<br> LContext.CreateStaticMethod<int>("test_fn2",test_fn2);<br> LContext.CreateStaticMethod<void>("test_fn5",test_fn5);<br> LContext.CreateStaticMethod<int>("test_fn6_with_ret",test_fn6_with_ret);<br> LContext.CreateStaticMethod<void>("test_fn6_with_object_param",test_fn6_with_object_param);<br> LContext.CreateStaticMethod<int>("fn5",test::fn5);<br> LContext.CreateStaticMethod<test2*>("test_return_object",test_return_object);<br>................<br><br>//测试类静态方法<br> LContext.GetVariable("test:test_fn").Invoke();<br><br> LContext.GetVariable("test_fn").Invoke();<br> LContext.GetVariable("test_fn5").Invoke(0,0,0,0,0);<br> LContext.GetVariable("test_fn6_with_object_param").Invoke(&LTest2);<br> int kl = LContext.GetVariable("test_fn6_with_ret").InvokeWithReturn<int>(19201,0,0,0,0);<br>......................<br><br>//返回c++对象到Lua测试<br> test2* pp2 = LContext.GetVariable("test_return_object").InvokeWithReturn<test2*>(&LTest2);<br> if(pp2->i != LTest2.i) throw "Error.";<br> //返回c++对象到Lua测试<br> if(!LContext.DoString("v2 = test2:test2();"))<br> printf("%s",LContext.GetLastError());<br> if(!LContext.DoString("print(v2);vv3 = test_return_object(v2);print(vv3);"))<br> printf("%s",LContext.GetLastError());<br> pp2 = LContext.GetVariable("vv3").ToObject<test2*>();<br> if(pp2->i != LTest2.i) throw "Error";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值