ESP32のデバッグ便利ツール紹介~スタックトレースを解析
1.概要
ESP32でプログラム開発中、ある事をするとリブートしてしまう問題が発生しました。Arduino IDEで開発しているとブレークポイントデバッグできないので困っていました。そんな時、デバッグの便利ツールを見つけたの紹介します。
スタックトレースを解析する"EspExceptionDecoder"です。
このツールはシリアルコンソールに出力されるトレース情報を解析し、ソースコードのどの部分で問題が起きているか表示してくれます。
2.導入
導入方法は以下のサイトを参考にさせていただきました。
3.使用方法
"EspExceptionDecoder"を導入後にArduino IDEを再起動し、ビルドし直す必要があります。ビルドを忘れてツールを開くとelfファイルの選択画面が表示されます。(ビルド時に現プロジェクトのelfファイルパスがEspExceptionDecoderに通ると思われます)
シリアルコンソールを開いているとリブート時のログが表示されます。その中にスタックトレース情報があります。”Backtrace :” で始まるログです。参考に、私の環境で表示されたログは次の通りです。
ツールの導入が正しく行えていれば、Arduino IDEのツール内に"EspExceptionDecoder"があるので起動します。起動すると次のような画面が表示されます。
シリアルコンソールに表示されているスタックトレースをコピーして貼り付けます。
私の場合では
Backtrace: 0x400d2248:0x3ffca210 0x4008e559:0x3ffca270
です。
貼り付けると次のように問題の箇所が表示されます。
この情報のおかげでデバッグできました!