esp-idf开发.解析崩溃报错打印的报错

一、在esp32开发时,经常遇到单片机报错的情况,这时候会打印出一个log如下:

这个时候我们就能通过工具解析出断点的对应代码位置:

xtensa-esp32-elf-addr2line.exe -pfiaC -e project 你的工程编译保存路径\build\你的程序名.elf log打印的断点

回车即可把断点代表的位置打印出来。

esp - idf - v5.3.2框架下查看ESP32包含Backtrace信息的报错信息,可按以下步骤操作: ### 使用platformio的monitor监视串口 使用platformio的monitor功能来监视ESP32的串口。当异常发生且elf文件存在时,一般会解析出类似 `Backtrace: 0x4200144e:0x3fcebf50 0x42001462:0x3fcebf70` 这样的异常栈内容,同时可能会显示各地址对应的函数和文件位置,如 `#0 0x4200144e in setup() at src/main.cpp:6` 。示例代码运行时若出现异常,可通过如下方式查看: ```python # 假设使用platformio,在命令行中使用monitor功能 # 命令示例,需根据实际情况调整 platformio device monitor ``` ### 借助addr2line工具解析Backtrace信息 当串口监视工具输出Backtrace信息后,可使用 `xtensa - esp32 - elf - addr2line` 工具精准分析硬件崩溃时的Backtrace信息。此工具能根据Backtrace中的地址解析出对应的函数和文件位置。例如,若串口输出 `Backtrace: 0x4201c7a7:0x3fced070 0x4201c824:0x3fced0a0 ...` ,可使用以下命令进行解析: ```bash # 假设elf文件名为your_project.elf xtensa-esp32-elf-addr2line -e your_project.elf 0x4201c7a7 0x4201c824 ... ``` ### 处理Guru Meditation Error及Backtrace信息 在开发过程中,若遇到如 `Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled. Backtrace: 0x4200fa1a:0x3fcebec0 ...` 这类串口报错,可结合上述方法,先通过串口获取Backtrace信息,再使用 `addr2line` 工具解析地址对应的函数和文件位置。 ### 查看freertos相关的Backtrace信息 当出现freertos相关的Backtrace问题时,如 `Backtrace:0x40240894:0x3fffd580 0x40240760:0x3fffd5c0 ...` ,同样可使用 `addr2line` 工具进行解析,以定位问题所在的函数和文件位置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值