EspExceptionDecoder
ESP32
概要
Arduino core for the ESP32で利用可能な、スタックトレーサのEspExceptionDecoderをインストールして試してみました。デバッガとは異なりますが、ESP32で例外が発生したときにはとても有用です。
こちらのページを試してみただけです。
Arduino core for the ESP32のインストールのページはこちら。
実験
インストール
インストールの手順は以下の通りです。
- Arduino core for the ESP32をインストールする。
- ツールをダウンロードする。 このページを作成したときの最新版は、EspExceptionDecoder-1.0.6.zip でした。
- Arduinoのスケッチを配置するディレクトリに、toolsディレクトリを作成する(ない場合)。
- Windowsの場合、ドキュメント配下のarduinoディレクトリです。
- ダウンロードしたファイルを、上記のtoolsディレクトリに展開する。
- 展開した結果、arduino/tools/EspExceptionDecoder/tool/EspExceptionDecoder.jarというファイルができあがります。
- Arduino ソフトウェアを起動していた場合は、終了させる。
- Arduino ソフトウェアを起動する。
インストールに成功していた場合は、以下のように、Arduinoソフトウェアの、「ツール」メニュー配下に「ESP Exception Decoder」という項目が表示されます。

使い方
ツールを起動して、Arduinoソフトウェアのシリアルコンソールに表示されるスタックトレースを、コピー&ペーストするだけです。
試しに、以下のプログラムで試してみました。
|
|
このプログラムを実行すると、以下のようにスタックトレースが表示されます。

コンソールに表示された、スタックトレースをツールにコピー&ペーストすると、どこで例外が発生したのかが表示されます。
今回は、setup()の6行目が原因で、_svfprintf_rで例外が発生したことがわかりました。
レジスタのダンプは、ペーストしなくても問題はありません。

バージョン
Hardware: | ESP-WROOM-32 |
Software: | Arduino 1.8.4/Arduino core for the ESP32 |
最終更新日
March 21, 2022