A Python tool to decode ESP-IDF panic backtraces and crash output. It translates program counter addresses to source file names, line numbers, and function names using ELF debug symbols. Current version is 1.5.0, released April 2026, with regular updates aligned with ESP-IDF release cycles.
pip install esp-idf-panic-decoderVerified import paths — ran on the pinned version, not inferred.
Basic usage: decode panic output using an ELF file.
Update any code that depends on target-specific register names. Use the generic register set provided.
Check your parsing of decoded output if upgrading from <1.4.0.
Ensure your firmware build includes debug symbols (e.g., build type 'DEBUG' not 'RELEASE').
Install using 'pip install esp-idf-panic-decoder'. The import name is 'esp_idf_panic_decoder' (with underscores).
Verify that the ELF file matches the firmware that generated the panic output. Use 'esptool.py elf2image' to check.
Remove the 'target' argument. Update code to not pass 'target'.
Use 'from esp_idf_panic_decoder import decode_crash' or 'import esp_idf_panic_decoder; esp_idf_panic_decoder.decode_crash()'.