国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Core Dump:調(diào)試 ESP32 開發(fā)板上 Zephyr 程序錯(cuò)誤的強(qiáng)大工具

2023-08-15 20:23 作者:樂鑫信息科技  | 我要投稿

Zephyr?是一個(gè)開源、可擴(kuò)展、適應(yīng)性強(qiáng)的實(shí)時(shí)操作系統(tǒng) (RTOS),能夠在多種硬件平臺(tái)上運(yùn)行,包括?樂鑫?的 ESP32、ESP32-S2、ESP32-C3 和 ESP32-S3 系列產(chǎn)品。Zephyr 為嵌入式系統(tǒng)開發(fā)提供了豐富的功能,包括針對(duì)無法恢復(fù)的軟件錯(cuò)誤生成可供分析的 core dump。?

Core dump 是在程序崩潰時(shí)保留的內(nèi)存快照,可用于調(diào)試程序,查找崩潰原因、以及確定導(dǎo)致崩潰的具體任務(wù)、代碼行和調(diào)用堆棧。如果需要,還可以為變量賦值并存儲(chǔ)變量內(nèi)容。?

Zephyr 操作系統(tǒng)支持多個(gè) core dump 后端,其中包括日志后端。日志后端將 core dump 輸出到 UART,然后保存到文件中,這樣就可以使用自定義的 GDB 服務(wù)器和 SDK 提供的 GDB 進(jìn)行分析。?


如何使用

要使用 core dump 的日志后端,需要啟用相應(yīng)的 Kconfig 選項(xiàng):?

一旦啟用了日志后端,應(yīng)用程序在遇到致命錯(cuò)誤時(shí)將生成 core dump。CPU 寄存器和內(nèi)存內(nèi)容將被打印到控制臺(tái)。?

將內(nèi)容復(fù)制并粘貼到一個(gè)名為?coredump.log?的文件中。?

我們需要將這個(gè)文本文件轉(zhuǎn)換為自定義 GDB 服務(wù)器可以解析的二進(jìn)制文件。只需運(yùn)行 coredump_serial_log_parser.py 腳本即可。?

該腳本會(huì)把二進(jìn)制文件輸出到 coredump.bin。

使用 zephyr 應(yīng)用程序中的 .elf 文件,并將 coredump.bin 作為參數(shù),啟動(dòng)自定義的 GDB 服務(wù)器:

打開另一個(gè)終端, Zephyr SDK 里運(yùn)行 Xtensa GDB,將 .elf 文件作為參數(shù):?

GDB 內(nèi)部,使用以下命令連接到自定義服務(wù)器:?

現(xiàn)在,您可以檢查程序崩潰時(shí)的狀態(tài),讀取變量值回溯信息和寄存器值。?


示例?

下面是一個(gè)使用 core dump 進(jìn)行調(diào)試的例子。?

我們?cè)?tests/subsys/debug/coredump 里創(chuàng)建并燒錄 core dump 示例。?

示例定義了三個(gè)函數(shù):func_1func_2 func_3。func_1 調(diào)用 func_2func_2 調(diào)用func_3。func_3 試圖對(duì)空指針進(jìn)行解引用,這將導(dǎo)致程序崩潰。?

程序崩潰會(huì)生成一個(gè) core dump 文件,我們將用它來調(diào)試程序。?

1.創(chuàng)建應(yīng)用程序:

?2.燒錄并監(jiān)控 ESP32 開發(fā)板:

預(yù)期輸出:?

Coredump內(nèi)容以#CD:BEGIN#開始,以#CD:END#結(jié)束。我們需要將這兩者之間的內(nèi)容復(fù)制到一個(gè)名為 coredump.log 的新文件中。

3.將 core dump 復(fù)制到 coredump.log:

4.轉(zhuǎn)換為二進(jìn)制格式:

5.啟動(dòng)自定義的 GDB 服務(wù)器:

預(yù)期輸出:

6.打開一個(gè)新的終端,啟動(dòng) Zephyr SDK 中的 Xtensa ESP32 GDB:

7.在 GDB 內(nèi)部,連接到遠(yuǎn)程服務(wù)器:

8.運(yùn)行 bt 命令查看回溯信息:


結(jié)論

Core dump 是一個(gè)強(qiáng)大的工具,用于調(diào)試 ESP32 開發(fā)板上的 Zephyr 程序錯(cuò)誤。通過使用 core dump 的日志后端,您可以輕松生成 core dump 文件,并使用調(diào)試器進(jìn)行分析。這將幫助您快速、方便地找出程序崩潰的原因,并修復(fù) bug。


相關(guān)鏈接

  • Zephyr

    https://www.zephyrproject.org

  • 樂鑫

    https://www.espressif.com/zh-hans/home


Core Dump:調(diào)試 ESP32 開發(fā)板上 Zephyr 程序錯(cuò)誤的強(qiáng)大工具的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
芦山县| 清水河县| 桃园县| 大厂| 博白县| 长垣县| 兰州市| 桦川县| 广宁县| 波密县| 舞阳县| 普洱| 靖江市| 桐乡市| 鹤峰县| 桐庐县| 开远市| 图木舒克市| 永胜县| 根河市| 南平市| 绿春县| 抚松县| 子洲县| 梅河口市| 汕尾市| 大足县| 铅山县| 茶陵县| 莱州市| 同心县| 合作市| 蚌埠市| 崇义县| 石屏县| 宁武县| 南丹县| 玛沁县| 黔江区| 龙川县| 东阿县|