Core Dump:调试 ESP32 开发板上 Zephyr 程序错误的强大工具

2023-08-16 07:36:59 来源:哔哩哔哩

Zephyr 是一个开源、可扩展、适应性强的实时操作系统 (RTOS),能够在多种硬件平台上运行,包括 乐鑫 的 ESP32、ESP32-S2、ESP32-C3 和 ESP32-S3 系列产品。Zephyr 为嵌入式系统开发提供了丰富的功能,包括针对无法恢复的软件错误生成可供分析的 core dump。 


(相关资料图)

Core dump 是在程序崩溃时保留的内存快照,可用于调试程序,查找崩溃原因、以及确定导致崩溃的具体任务、代码行和调用堆栈。如果需要,还可以为变量赋值并存储变量内容。 

Zephyr 操作系统支持多个 core dump 后端,其中包括日志后端。日志后端将 core dump 输出到 UART,然后保存到文件中,这样就可以使用自定义的 GDB 服务器和 SDK 提供的 GDB 进行分析。 

如何使用

要使用 core dump 的日志后端,需要启用相应的 Kconfig 选项: 

一旦启用了日志后端,应用程序在遇到致命错误时将生成 core dump。CPU 寄存器和内存内容将被打印到控制台。 

将内容复制并粘贴到一个名为 的文件中。 

我们需要将这个文本文件转换为自定义 GDB 服务器可以解析的二进制文件。只需运行 coredump_serial_log_ 脚本即可。 

该脚本会把二进制文件输出到 。

使用 zephyr 应用程序中的 .elf 文件,并将 作为参数,启动自定义的 GDB 服务器:

打开另一个终端,从 Zephyr SDK 里运行 Xtensa 的 GDB,将 .elf 文件作为参数: 

在 GDB 内部,使用以下命令连接到自定义服务器: 

现在,您可以检查程序崩溃时的状态,读取变量值、回溯信息和寄存器值了。 

示例 

下面是一个使用 core dump 进行调试的例子。 

我们在 tests/subsys/debug/coredump 里创建并烧录 core dump 示例。 

该示例定义了三个函数:func_1,func_2 和 func_3。func_1 调用 func_2,func_2 调用func_3。func_3 试图对空指针进行解引用,这将导致程序崩溃。 

程序崩溃会生成一个 core dump 文件,我们将用它来调试程序。 

1.创建应用程序:

2.烧录并监控 ESP32 开发板:

预期输出: 

Coredump内容以#CD:BEGIN#开始,以#CD:END#结束。我们需要将这两者之间的内容复制到一个名为 的新文件中。

3.将 core dump 复制到 :

4.转换为二进制格式:

5.启动自定义的 GDB 服务器:

预期输出:

6.打开一个新的终端,启动 Zephyr SDK 中的 Xtensa ESP32 GDB:

7.在 GDB 内部,连接到远程服务器:

8.运行 bt 命令查看回溯信息:

结论

Core dump 是一个强大的工具,用于调试 ESP32 开发板上的 Zephyr 程序错误。通过使用 core dump 的日志后端,您可以轻松生成 core dump 文件,并使用调试器进行分析。这将帮助您快速、方便地找出程序崩溃的原因,并修复 bug。

相关链接

Zephyr

乐鑫

/zh-hans/home

标签:

Core Dump:调试 ESP32 开发板上 Zephyr 程序错误的强大工具

Zephyr是一个开源、可扩展、适应性强的实时操作系统(RTOS),能够在多种

2023-08-16 07:36:59

汇中股份2023年上半年净利4232万 同比减少10.81%

挖贝网2023年8月14日,汇中股份(300371)近日发布2023年半年度报,报告

2023-08-16 06:57:37

销售注册假冒伪劣产品有什么责任?

一、销售注册假冒伪劣产品有什么责任?1、经营者有下列情形之一,除承担

2023-08-16 07:17:59

福特任命原苹果副总裁Peter Stern为服务部门总裁

品玩8月14日讯,据福特官方消息,福特已聘请原苹果副总裁PeterStern领

2023-08-16 06:51:18

东京股市两大股指反弹

据新华网报导,东京股市两大股指15日反弹。日经225种股票平均价格指数

2023-08-16 06:56:47

中超控股:8月14日融资买入255.36万元,融资融券余额6389.67万元

8月14日,中超控股(002471)融资买入255 36万元,融资偿还398 53万元

2023-08-16 06:35:24

越秀地产(00123)附属广州广盈以68.324亿元成功竞得广州市天河区黄云路地块

越秀地产(00123)附属广州广盈以68 324亿元成功竞得广州市天河区黄云路

2023-08-16 05:54:44

2023年郑州高新区外国语小学划片和线下报名指南

入学规定一年级入学年龄:年满六岁零二个月(2017年6月30日前出生且未上

2023-08-16 05:08:04

20个简短小笑话超级爆笑

有一个男人非常不善于说话。一天邻居生了个儿子,大家都去祝贺,他也去

2023-08-16 04:22:00

14.98万元!KTM 890 ADVENTURE R越野摩托车在国内上市

奥地利摩托车制造商KTM宣布,旗下的KTM890ADVENTURER越野摩托车已经在

2023-08-16 04:32:47
x 广告
x 广告

Copyright ©  2015-2022 热讯经营网版权所有  备案号:豫ICP备20005723号-6   联系邮箱:29 59 11 57 8@qq.com