esp-backtrace 0.11.0

Bare-metal backtrace support for ESP32
Documentation

esp-backtrace - backtrace for ESP32 bare-metal

Supports the ESP32, ESP32-C2/C3/C6, ESP32-H2, ESP32-P4, and ESP32-S2/S3. Optional exception and panic handlers are included, both of which can be enabled via their respective features.

Please note that when targeting a RISC-V device, you need to force frame pointers (i.e. "-C", "force-frame-pointers", in your .cargo/config.toml); this is not required for Xtensa.

You can get an array of backtrace addresses (currently limited to 10) via arch::backtrace() if you want to create a backtrace yourself (i.e. not using the panic or exception handler).

When using the panic and/or exception handler make sure to include use esp_backtrace as _;.

Features

Feature Description
esp32 Target ESP32
esp32c2 Target ESP32-C2
esp32c3 Target ESP32-C3
esp32c6 Target ESP32-C6
esp32h2 Target ESP32-H2
esp32p4 Target ESP32-P4
esp32s2 Target ESP32-S2
esp32s3 Target ESP32-S3
panic-handler Include a panic handler, will add esp-println as a dependency
exception-handler Include an exception handler, will add esp-println as a dependency
println Use esp-println to print messages
defmt Use defmt logging to print messages* (check example)
colors Print messages in red*
halt-cores Halt both CPUs on ESP32 / ESP32-S3 in case of a panic or exception

* only used for panic and exception handlers

License

Licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.