Skip to content

Instantly share code, notes, and snippets.

@Kobzol
Created December 18, 2023 16:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kobzol/27ad8fa8aae1ccb7642925ab99ca8897 to your computer and use it in GitHub Desktop.
Save Kobzol/27ad8fa8aae1ccb7642925ab99ca8897 to your computer and use it in GitHub Desktop.
Rust OOB panic backtrace in release mode with and without debug symbols
# Panic output (in `--release`)
## Without debug symbols
```
thread 'main' panicked at src/main.rs:3:8:
index out of bounds: the len is 3 but the index is 4
stack backtrace:
0: 0x55a28b9c7bec - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hd46f2a9cebc06b06
1: 0x55a28b9e73c0 - core::fmt::write::h54b2c7c910694af9
2: 0x55a28b9c609f - std::io::Write::write_fmt::hb6665e8e567caf38
3: 0x55a28b9c79d4 - std::sys_common::backtrace::print::h3124b1d5ba8ce62e
4: 0x55a28b9c8ee7 - std::panicking::default_hook::{{closure}}::h9f84932d9b1cb469
5: 0x55a28b9c8c4f - std::panicking::default_hook::h00804a8a74e73ce1
6: 0x55a28b9c9368 - std::panicking::rust_panic_with_hook::h7f0d5f9e1b7dd5f3
7: 0x55a28b9c924e - std::panicking::begin_panic_handler::{{closure}}::h12fc2c23261b8f09
8: 0x55a28b9c80b6 - std::sys_common::backtrace::__rust_end_short_backtrace::h71eb04bab3722ef9
9: 0x55a28b9c8fb2 - rust_begin_unwind
10: 0x55a28b9acdf5 - core::panicking::panic_fmt::hea74a47af76727ee
11: 0x55a28b9acfd2 - core::panicking::panic_bounds_check::h87d6b1312bb42866
12: 0x55a28b9ad682 - strip::main::hde6b5798b1d28269
13: 0x55a28b9ad603 - std::sys_common::backtrace::__rust_begin_short_backtrace::hc9bb66adbfbed881
14: 0x55a28b9ad639 - std::rt::lang_start::{{closure}}::h023411546a32dfd2
15: 0x55a28b9c3fc7 - std::rt::lang_start_internal::hf2de4137b9d23e3b
16: 0x55a28b9ad62e - std::rt::lang_start::h7f146f36dadc89d5
17: 0x7f56b10b0d90 - __libc_start_call_main
at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
18: 0x7f56b10b0e40 - __libc_start_main_impl
at ./csu/../csu/libc-start.c:392:3
19: 0x55a28b9ad535 - _start
20: 0x0 - <unknown>
```
## With debug symbols
```
thread 'main' panicked at test-crate/strip/src/main.rs:3:8:
index out of bounds: the len is 3 but the index is 4
stack backtrace:
0: 0x5582a4aa9bec - std::backtrace_rs::backtrace::libunwind::trace::hb026205ebcf7381e
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
1: 0x5582a4aa9bec - std::backtrace_rs::backtrace::trace_unsynchronized::h6acc6cecd0641547
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x5582a4aa9bec - std::sys_common::backtrace::_print_fmt::hcb459a90eac7fb1f
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/sys_common/backtrace.rs:68:5
3: 0x5582a4aa9bec - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hd46f2a9cebc06b06
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/sys_common/backtrace.rs:44:22
4: 0x5582a4ac93c0 - core::fmt::rt::Argument::fmt::hbc0d233dd8884e69
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/core/src/fmt/rt.rs:142:9
5: 0x5582a4ac93c0 - core::fmt::write::h54b2c7c910694af9
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/core/src/fmt/mod.rs:1120:17
6: 0x5582a4aa809f - std::io::Write::write_fmt::hb6665e8e567caf38
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/io/mod.rs:1810:15
7: 0x5582a4aa99d4 - std::sys_common::backtrace::_print::h2ff18766d439ab39
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/sys_common/backtrace.rs:47:5
8: 0x5582a4aa99d4 - std::sys_common::backtrace::print::h3124b1d5ba8ce62e
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/sys_common/backtrace.rs:34:9
9: 0x5582a4aaaee7 - std::panicking::default_hook::{{closure}}::h9f84932d9b1cb469
10: 0x5582a4aaac4f - std::panicking::default_hook::h00804a8a74e73ce1
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/panicking.rs:292:9
11: 0x5582a4aab368 - std::panicking::rust_panic_with_hook::h7f0d5f9e1b7dd5f3
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/panicking.rs:779:13
12: 0x5582a4aab24e - std::panicking::begin_panic_handler::{{closure}}::h12fc2c23261b8f09
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/panicking.rs:657:13
13: 0x5582a4aaa0b6 - std::sys_common::backtrace::__rust_end_short_backtrace::h71eb04bab3722ef9
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/sys_common/backtrace.rs:171:18
14: 0x5582a4aaafb2 - rust_begin_unwind
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/panicking.rs:645:5
15: 0x5582a4a8edf5 - core::panicking::panic_fmt::hea74a47af76727ee
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/core/src/panicking.rs:72:14
16: 0x5582a4a8efd2 - core::panicking::panic_bounds_check::h87d6b1312bb42866
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/core/src/panicking.rs:208:5
17: 0x5582a4a8f682 - strip::main::h6088234977d2c7b8
18: 0x5582a4a8f603 - std::sys_common::backtrace::__rust_begin_short_backtrace::h96b9644b7e2d0f8d
19: 0x5582a4a8f639 - std::rt::lang_start::{{closure}}::h7159a172215d450d
20: 0x5582a4aa5fc7 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::hd835133e30d857ca
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/core/src/ops/function.rs:284:13
21: 0x5582a4aa5fc7 - std::panicking::try::do_call::h7bf58ec2f30f7837
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/panicking.rs:552:40
22: 0x5582a4aa5fc7 - std::panicking::try::hfe1653c86c2e2577
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/panicking.rs:516:19
23: 0x5582a4aa5fc7 - std::panic::catch_unwind::h8cab98191a94e0ad
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/panic.rs:142:14
24: 0x5582a4aa5fc7 - std::rt::lang_start_internal::{{closure}}::haf4b5b8097633f43
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/rt.rs:148:48
25: 0x5582a4aa5fc7 - std::panicking::try::do_call::hb56f5acf4f9b3531
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/panicking.rs:552:40
26: 0x5582a4aa5fc7 - std::panicking::try::h716467a878a5ed2a
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/panicking.rs:516:19
27: 0x5582a4aa5fc7 - std::panic::catch_unwind::h9f4c2e061b9230f3
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/panic.rs:142:14
28: 0x5582a4aa5fc7 - std::rt::lang_start_internal::hf2de4137b9d23e3b
at /rustc/3340d49d22b1aba425779767278c40781826c2f5/library/std/src/rt.rs:148:20
29: 0x5582a4a8f62e - std::rt::lang_start::h0ef4d061278c0113
30: 0x7fb1e9997d90 - __libc_start_call_main
at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
31: 0x7fb1e9997e40 - __libc_start_main_impl
at ./csu/../csu/libc-start.c:392:3
32: 0x5582a4a8f535 - _start
33: 0x0 - <unknown>
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment