合宙LuatOS的个人空间 https://www.eechina.com/space-uid-176273.html [收藏] [复制] [RSS]

博客

破解远程errDump调试难题:避开陷阱的实用方法论

已有 33 次阅读2025-6-9 13:47 |个人分类:4G模组| 物联网, 单片机, 4G模块, 通讯模组, 嵌入式硬件

远程errDump调试中的陷阱犹如暗礁,阻碍效率提升。本文系统化呈现避坑方法论,结合具体案例与技巧,教您如何预判、规避并解决常见陷阱,实现高效排障。

本文特别分享errDump功能及Air8101开发板实操验证。

 

一、errDump功能介绍

1.1 errDump有什么用?

errDump是LuatOS系统中的错误日志上报模块,主要用于远程调试与故障诊断。

其原理是将模块运行过程中产生的错误信息或者应用日志,通过TCP/UDP上报到互联网上的指定服务器,技术人员可以在服务器上查阅日志,协助远程了解设备运行情况或者故障诊断。


核心价值体现在:

1)实时监控设备状态将设备运行时的错误信息(如系统崩溃、协程异常、网络故障等)通过TCP/UDP/HTTP协议上报到指定服务器。

2)支持量产设备维护对于已投放市场的设备,无需现场调试即可远程定位问题,显著降低维护成本。

3)灵活配置用户可自定义上报周期、服务器地址及日志类型,适应不同场景需求。


1.2 错误信息及日志类型

目前errDump支持2类错误日志的储存与上报:

1)系统任务报错

脚本报错属于系统异常日志,程序报错时会自动写入。

如果使用自动上报到iot平台,则在下次重启会自动读取并上报;如果是自行读取上报,可通过errDump.dump(buff,errDump.TYPE_SYS, ture) 来读取系统异常日志,并根据自己需求自定义传输。

2)用户自行写入

用户自行写入异常日志,是通过 errDump.record() 接口来保存的异常日志。

如果设置了定时上报周期的话,则会定期上报到服务器中;如果自行读取上报的话,可以通过 errDump.dump(nil, errDump.TYPE_SYS, true) 来读取用户异常日志,并根据自己需求自定义传输。


1.3 存储区域与空间管理

日志文件都是储存在文件系统中。系统异常日志文件和用户异常日志文件最大都是4KB。

当存储空间不足时,新日志会覆盖最旧的数据。用户可通过errDump.dump() 手动读取并清理日志,避免自动覆盖。


1.4 日志上报与读取方式

1)自动上报

通过errDump.config(enable, period, user_flag, custom_id, host, port) 配置服务器地址和周期(默认600 秒)。上报成功后,本地日志自动清空。

2)手动读取

使用errDump.dump(zbuff, type, isDelete) 读取日志,支持指定类型(如系统日志、用户日志)并选择是否删除。

3)自定义传输
 

禁用自动上报后,用户可通过errDump.dump() 获取日志内容,再通过MQTT、HTTP API等方式发送到自有服务器。


1.5 日志清除机制

1)自动清除:设置自动模式的话,上报到服务器成功后,本地日志自动删除。

2)手动清除:设置手动读取模组,调用errDump.dump(nil, type, true) 指定日志类型并删除。

3)覆盖策略:系统/用户日志达到4KB时,新写入内容覆盖旧数据。

 


二、 Air8101开发板errDump示例


下文以Air8101开发板为例,演示errdump日志上报功能实操要点。

最新源码及实操教程详见:https://docs.openluat.com/air8101/luatos/app/base/errdump/

主要示例代码如下:

 

1)main.lua

 

2)errdump_test.lua

本功能模块为:使用自动上报异常日志到iot平台。


3)errdump_uart.lua

本功能模块为:使用手动读取异常日志并通过串口传出。


4)errdump_tcp.lua

本功能模块为:手动读取异常日志上传到自己平台。

 

三、errDump实操验证 

3.1 自动上传IoT平台

云平台:iot.openluat.com


1)登录IoT平台

手机号为账号,默认密码888888,创建一个IoT账号。

用这个账号即可登录IoT平台,将Air8101的sta mac归属到此账号名下。


2)新建一个项目


3)将你自己建的项目key复制到demo中


4)打开设备DEBUG开关

特别注意:使用IoT云服务器时,迫于服务器压力,只有手动打开debug开关,才会有日志上报。


5)LuaTools日志打印


6)云平台查看错误上报


3.2 手动读取通过串口上传功能验证

手动读取系统异常日志和用户自定义消息,并通过串口输出。


1)LuaTools日志打印


2)串口打印异常日志


3.3 手动读取通过TCP上传功能验证

手动读取系统异常日志和用户自定义消息,并通过TCP协议上报到服务器中。

本文使用TCP服务器来演示: https://netlab.luatos.com/


1)启动TCP服务器

启动TCP服务器并修改demo中的IP和端口号:


2)LuaTools日志打印


3)服务器日志打印


今天的内容就分享到这里了~


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部