be51e6bd07
The `backtrace-rs` crate can use this to implement `Frame::symbol_address`, which is used to skip frames above the call to `Backtrace::capture` on the stack. The function pointer will not be useable for comparison purposes if the function is generic, as CTFE creates a new function pointer for each cast of a (monomorphized) generic function. However, this already affects code running under Miri, and isn't a problem for `backtrace-rs` (which only casts a non-generic function). I've added logic to allow `MiriFrame` to have either 4 or 5 fields - if a 5th field is present, we write the function pointer to it.
15 lines
826 B
Plaintext
15 lines
826 B
Plaintext
$DIR/backtrace-api.rs:13:59 (func_d)
|
|
$DIR/backtrace-api.rs:12:50 (func_c)
|
|
$DIR/backtrace-api.rs:6:53 (func_b)
|
|
$DIR/backtrace-api.rs:5:50 (func_a)
|
|
$DIR/backtrace-api.rs:17:18 (main)
|
|
RUSTLIB/core/src/ops/function.rs:LL:COL (<fn() as std::ops::FnOnce<()>>::call_once - shim(fn()))
|
|
RUSTLIB/std/src/sys_common/backtrace.rs:LL:COL (std::sys_common::backtrace::__rust_begin_short_backtrace)
|
|
RUSTLIB/std/src/rt.rs:LL:COL (std::rt::lang_start::{closure#0})
|
|
RUSTLIB/core/src/ops/function.rs:LL:COL (std::ops::function::impls::call_once)
|
|
RUSTLIB/std/src/panicking.rs:LL:COL (std::panicking::r#try::do_call)
|
|
RUSTLIB/std/src/panicking.rs:LL:COL (std::panicking::r#try)
|
|
RUSTLIB/std/src/panic.rs:LL:COL (std::panic::catch_unwind)
|
|
RUSTLIB/std/src/rt.rs:LL:COL (std::rt::lang_start_internal)
|
|
RUSTLIB/std/src/rt.rs:LL:COL (std::rt::lang_start)
|