久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > 遠程errDump調試避坑指南:從陷阱到解決方案的實戰解碼

遠程errDump調試避坑指南:從陷阱到解決方案的實戰解碼

發布人:13673998452 時間:2025-06-09 來源:工程師 發布文章

為何遠程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)服務器日志打印


今天的內容就分享到這里了~


*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



相關推薦

技術專區

關閉