日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ESP32 coredump 分析

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ESP32 coredump 分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.

上次寫了一個 ESP32 入門,我想有必要再寫這篇文章,這次主要是分析 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 文件要對應,要不然分析結果千壤之別。

?

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 <http://gnu.org/licenses/gpl.html> 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: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. 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 <main task>] [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=<optimized out>) at /cygdrive/e/AiThinkerIDE_V0.5/cygwin/home/aithinker/project/esp-idf/components/driver/ledc.c:328 328 return ret; [Current thread is 1 (<main task>)] (gdb)

推薦閱讀

推薦周立功先生的一本書

一個從華為離職的朋友

分享一個非常 nice 的工具

???

?

?

總結

以上是生活随笔為你收集整理的ESP32 coredump 分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。