6 releases (breaking)

0.6.0 Feb 28, 2023
0.5.0 Feb 10, 2023
0.4.0 Dec 2, 2022
0.3.0 Oct 6, 2022
0.1.0 Aug 9, 2022

#110 in Embedded development

Download history 1313/week @ 2022-12-04 4029/week @ 2022-12-11 1153/week @ 2022-12-18 409/week @ 2022-12-25 1638/week @ 2023-01-01 1531/week @ 2023-01-08 807/week @ 2023-01-15 1189/week @ 2023-01-22 1542/week @ 2023-01-29 1852/week @ 2023-02-05 1713/week @ 2023-02-12 2255/week @ 2023-02-19 2056/week @ 2023-02-26 2041/week @ 2023-03-05 1641/week @ 2023-03-12 1630/week @ 2023-03-19

7,584 downloads per month
Used in 6 crates


574 lines

esp-backtrace - backtrace for ESP32 bare-metal

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

Please note that you need to force frame pointers (i.e. "-C", "force-frame-pointers", in your .cargo/config.toml)

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 _;.

When using this together with esp-println make sure to use the same output kind for both dependencies. (Or don't specify the output for esp-backtrace)


Feature Description
esp32 Target ESP32
esp32c2 Target ESP32-C2
esp32c3 Target ESP32-C3
esp32c6 Target ESP32-C6
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
print-uart Use UART to print messages*
print-jtag-serial Use JTAG-Serial to print messages*
print-rtt Use RTT to print messages*
halt-cores Halt both CPUs on ESP32 / ESP32-S3 in case of a panic or exception

* only used for panic and exception handlers


Licensed under either of:

at your option.


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.