ESP32 coredump 分析
发布日期:2021-06-30 18:58:39 浏览次数:3 分类:技术文章

本文共 2991 字,大约阅读时间需要 9 分钟。

640?wx_fmt=jpeg

1.

上次写了一个 ,我想有必要再写这篇文章,这次主要是分析 coredump 的,这就像 Android 和 Linux 系统的死机分析,有意思,也有难度。我们写代码的时候,不可避免的会遇到一些 coredump 的问题,这时候我们就要去分析 coredump 的原因,在 Linux 内核也是一样, coredump 主要是打印一些堆栈调用,通过看到这些堆栈调用信息,我们可以定位到问题原因。

 

网上有很多分析 coredump 的文章,但是清一色的都是翻译官网的东西,没有实际去测试运行过。

 

我觉得 ESP32 还有一个好处是,对于初学者真的太方便了,买个 Linux 开发板可能要几百块,但是买一个 ESP32 模块的话,也就 40 块钱,而且也是跑 Freertos 系统的,还有还有就是非常方便携带,调试烧录供电都可以用一个 usb 线搞定,说真的,我没有收钱宣传,是真的适合没有钱又喜欢入门嵌入式的同学们,但是这个只是起点,嵌入式后期我觉得一定是要学习Linux 的。

 

2.

coredump 官方文档

https://esp-idf-zh.readthedocs.io/zh_CN/latest/api-guides/core_dump.html

 

保存出现 coredump 的日志

sC4AAA4AAABkAQAA		fLr8P1Dx/T8U8/0/		gPH9P7Dy/T+suvw/xD/8P7jl/T98uvw/vD/8PxQAAAAAAAAAOGD8P3y6/D8AAAAA		BQAAABjn/T9wdGhyZWFkAAcAAFEFNFQAfxTz/T8AAAAAIAsGAAUAAAAAAAAA		AAAAAAAAAAAAAAAAAJj8P2iY/D/QmPw/AAAAAAAAAAABAAAAAAAAAAhCQD8AAAAA		SB0AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA		AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA		AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA		AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA		AAAAAAAAAAAAAAAAAAAAAAAAAAA=		hOkRgEoVDkAwBwYAsggOgBDy/T/ku/w/fLr8PwAAAAD/AAAAAAAAAAAAAAAA		8PH9P+S7/D/ku/w/3OUTQAEAAAAhAAYABAAAAAgAAAAcAAAAAAAAAP0UAEANFQBA		........

 

烧录到设备上对应的 elf 文件

elf 文件类似于 Linux 上的 Vmlinx 文件, 通过这个文件和 dump 信息,还有 gdb 就可以找到 crash 位置附近的上下文代码,有了上下文代码,作为百里挑一码农的你,肯定不会放过蛛丝马迹找到 bug 所在。

 

elf 文件是我们编译的时候生成的,我们每次编译一次就会有不同的符号表,当然,我们分析 coredump 的时候,烧录到设备的 bin 文件和 elf 文件要对应,要不然分析结果千壤之别。

640?wx_fmt=png

 

3.执行命令如下

官网还有另外一个命令,那个命令每次运行都出现错误,如果有知道原因的可以留言告知我,万分感谢。

./components/espcoredump/espcoredump.py dbg_corefile cat-wc/build/app_main.elf -c cat-wc/build/coredump.bin -t b64

 

$ ./components/espcoredump/espcoredump.py dbg_corefile cat-wc/build/app_main.elf -c cat-wc/build/coredump.bin -t b64	espcoredump.py v0.1-dev	GNU gdb (crosstool-NG crosstool-ng-1.22.0-61-gab8375a) 7.10	Copyright (C) 2015 Free Software Foundation, Inc.	License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=i686-build_pc-cygwin --target=xtensa-esp32-elf". Type "show configuration" for configuration details. For bug reporting instructions, please see:
. Find the GDB manual and other documentation resources online at:
. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from cat-wc/build/app_main.elf...done. [New
] [New process 1] [New process 2] [New process 3] [New process 4] [New process 5] [New process 6] [New process 7] [New process 8] [New process 9] [New process 10] [New process 11] [New process 12] [New process 13] [New process 14] #0 0x4012cbc3 in ledc_channel_config (ledc_conf=
) at /cygdrive/e/AiThinkerIDE_V0.5/cygwin/home/aithinker/project/esp-idf/components/driver/ledc.c:328 328 return ret; [Current thread is 1 (
)] (gdb)

推荐阅读

640?wx_fmt=gif   

640?wx_fmt=jpeg

 

 

转载地址:https://linus.blog.csdn.net/article/details/90622159 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:要有敬畏之心
下一篇:我那个在华为过得很好的朋友

发表评论

最新留言

不错!
[***.144.177.141]2024年04月21日 16时48分44秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

路径规划(一) —— 环境描述(Grid Map & Feature Map) & 全局路径规划(最优路径规划(Dijkstra&A*star) & 概率路径规划(PRM&RRT)) 2019-04-30
神经网络调参实战(四)—— 加深网络层次 & 批归一化 batch normalization 2019-04-30
数据挖掘与数据分析(三)—— 探索性数据分析EDA(多因子与复合分析) & 可视化(1)—— 假设检验(μ&卡方检验&方差检验(F检验))&相关系数(皮尔逊&斯皮尔曼) 2019-04-30
RRT算法(快速拓展随机树)的Python实现 2019-04-30
路径规划(二) —— 轨迹优化(样条法) & 局部规划(人工势能场法) & 智能路径规划(生物启发(蚁群&RVO) & 强化学习) 2019-04-30
D*算法 2019-04-30
强化学习(四) —— Actor-Critic演员评论家 & code 2019-04-30
RESTful API 2019-04-30
优化算法(四)——粒子群优化算法(PSO) 2019-04-30
数据挖掘与数据分析(三)—— 探索性数据分析EDA(多因子与复合分析) & 可视化(2)——回归分析(最小二乘法&决定系数&残差不相关)&主成分分析&奇异值分解 2019-04-30
数据在Oracle中的存储 2019-04-30
优化算法(五)—人工蜂群算法Artificial Bee Colony Algorithm(ABC) 2019-04-30
轨迹规划 trajectory planning 2019-04-30
AGV自动导引运输车 2019-04-30
Trie树(字典树) 2019-04-30
COMP7404 Machine Learing——Logistic Regression 2019-04-30
COMP7404 Machine Learing——Regularization(参数C) 2019-04-30
COMP7404 Machine Learing——KNN 2019-04-30
COMP7404 Machine Learing——SVM 2019-04-30
COMP7404 Machine Learing——Decision Tree & Random Forests 2019-04-30