kmaepuの日記

趣味の電子工作もくもくを気ままに記事にしてます(=゚ω゚=)

ESP32のデバッグ便利ツール紹介~スタックトレースを解析

1.概要

 ESP32でプログラム開発中、ある事をするとリブートしてしまう問題が発生しました。Arduino IDEで開発しているとブレークポイントデバッグできないので困っていました。そんな時、デバッグの便利ツールを見つけたの紹介します。

 

 スタックトレースを解析する"EspExceptionDecoder"です。

 

 このツールはシリアルコンソールに出力されるトレース情報を解析し、ソースコードのどの部分で問題が起きているか表示してくれます。

 

2.導入

導入方法は以下のサイトを参考にさせていただきました。

qiita.com

 

github.com

 

 

3.使用方法

 

 "EspExceptionDecoder"を導入後にArduino IDEを再起動し、ビルドし直す必要があります。ビルドを忘れてツールを開くとelfファイルの選択画面が表示されます。(ビルド時に現プロジェクトのelfファイルパスがEspExceptionDecoderに通ると思われます)

 

 シリアルコンソールを開いているとリブート時のログが表示されます。その中にスタックトレース情報があります。”Backtrace :” で始まるログです。参考に、私の環境で表示されたログは次の通りです。

f:id:kmaepu:20190603091755p:plain

 

 ツールの導入が正しく行えていれば、Arduino IDEのツール内に"EspExceptionDecoder"があるので起動します。起動すると次のような画面が表示されます。

 

f:id:kmaepu:20190603093049p:plain

 

 シリアルコンソールに表示されているスタックトレースをコピーして貼り付けます。

私の場合では

 Backtrace: 0x400d2248:0x3ffca210 0x4008e559:0x3ffca270

です。

 

 貼り付けると次のように問題の箇所が表示されます。

 

f:id:kmaepu:20190603093422p:plain

 

 この情報のおかげでデバッグできました!