Skip to content

Function references missing from __unwind_info on OS X #74771

@eggyal

Description

@eggyal

I tried this code:

fn main() {}

In the __TEXT,__unwind_info section of the resulting binary, I expected to find an entry for every single routine.

Instead, of the 368 routines in the binary, only 217 (~59%) have entries in the __TEXT,__unwind_info section. There does not appear to be any obvious determinant for which routines have entries and which do not. Since _Unwind_FindEnclosingFunction ultimately uses this info to locate the enclosing routine, these omissions unsurprisingly result in that function (sometimes) returning erroneous results. See, for example, this unsatisfactory workaround in backtrace-rs.

I believe that the __TEXT,__unwind_info section is generated by the linker's compact_unwind pass, from records that it finds in the __LD,__compact_unwind section. I haven't (yet) determined whether the latter is correctly populated (and therefore whether this is a linker bug) or not (and therefore a compiler bug), although I have tested and observed similar behaviour in clang so am leaning toward the former.

Meta

rustc --version --verbose:

rustc 1.47.0-nightly (d6953df14 2020-07-25)
binary: rustc
commit-hash: d6953df14657f5932270ad2b33bccafe6f39fad4
commit-date: 2020-07-25
host: x86_64-apple-darwin
release: 1.47.0-nightly
LLVM version: 10.0
368 routines in generated binary

$ nm -numeric-sort target/debug/unwind_info --s __TEXT __text | tail -n +2 | rustfilt
0000000100000c60 t _<() as std::process::Termination>::report
0000000100000c80 t _<std::process::ExitCode as std::process::Termination>::report
0000000100000cb0 t _core::ops::function::FnOnce::call_once{{vtable.shim}}
0000000100000cd0 t _core::ops::function::FnOnce::call_once
0000000100000d10 t _core::ptr::drop_in_place
0000000100000d30 t _std::sys::unix::process::process_common::ExitCode::as_i32
0000000100000d50 t _unwind::main
0000000100000d60 T _main
0000000100000d90 t _std::rt::lang_start
0000000100000de0 t _std::rt::lang_start::{{closure}}
0000000100000e00 T ___rust_alloc
0000000100000e10 T ___rust_dealloc
0000000100000e20 T ___rust_realloc
0000000100000e30 t _<T as core::any::Any>::type_id
0000000100000e40 t _<T as core::any::Any>::type_id
0000000100000e50 t _<T as core::any::Any>::type_id
0000000100000e60 t _<&T as core::fmt::Debug>::fmt
0000000100000ee0 t _<&T as core::fmt::Debug>::fmt
0000000100000f30 t _<&T as core::fmt::Debug>::fmt
0000000100000f80 t _<&T as core::fmt::Display>::fmt
0000000100000fa0 t _<&T as core::fmt::Display>::fmt
0000000100000fb0 t _<&T as core::fmt::UpperHex>::fmt
0000000100000fc0 t _core::fmt::Write::write_char
0000000100001090 t _core::fmt::Write::write_fmt
00000001000010f0 t _core::ops::function::FnOnce::call_once{{vtable.shim}}
0000000100001100 t _core::ops::function::FnOnce::call_once{{vtable.shim}}
0000000100001110 t _core::ops::function::FnOnce::call_once{{vtable.shim}}
0000000100001190 t _core::ops::function::FnOnce::call_once{{vtable.shim}}
00000001000011b0 t _core::ptr::drop_in_place
00000001000011c0 t _core::ptr::drop_in_place
00000001000011d0 t _core::ptr::drop_in_place
00000001000011e0 t _core::ptr::drop_in_place
0000000100001220 t _core::ptr::drop_in_place
00000001000012b0 t _core::ptr::drop_in_place
00000001000012e0 t _core::ptr::drop_in_place
00000001000012f0 t _core::ptr::drop_in_place
0000000100001350 t _core::ptr::drop_in_place
0000000100001440 t _core::ptr::drop_in_place
0000000100001470 t _core::ptr::drop_in_place
00000001000014b0 t _core::ptr::drop_in_place
00000001000014e0 t _core::ptr::drop_in_place
00000001000014f0 t _core::ptr::drop_in_place
0000000100001520 t _core::ptr::drop_in_place
00000001000015b0 t _core::ptr::drop_in_place
0000000100001640 t _core::ptr::drop_in_place
00000001000016a0 t _core::ptr::drop_in_place
00000001000016f0 t _core::ptr::drop_in_place
0000000100001710 t _core::ptr::drop_in_place
0000000100001730 t _core::ptr::drop_in_place
0000000100001760 t _core::ptr::drop_in_place
0000000100001790 t _core::ptr::drop_in_place
00000001000017e0 t _core::ptr::drop_in_place
0000000100001800 t _core::ptr::drop_in_place
0000000100001820 t _core::ptr::drop_in_place
00000001000018d0 t _core::ptr::drop_in_place
0000000100001900 t _core::ptr::drop_in_place
0000000100001920 t _core::ptr::drop_in_place
0000000100001950 t _core::ptr::drop_in_place
0000000100001970 t _core::ptr::drop_in_place
00000001000019a0 t _core::str::traits::<impl core::slice::SliceIndex<str> for core::ops::range::RangeFrom<usize>>::index::{{closure}}
00000001000019d0 t _<&mut W as core::fmt::Write>::write_char
0000000100001be0 t _<&mut W as core::fmt::Write>::write_char
0000000100001cc0 t _<&mut W as core::fmt::Write>::write_fmt
0000000100001d20 t _<&mut W as core::fmt::Write>::write_fmt
0000000100001d80 t _<&mut W as core::fmt::Write>::write_str
0000000100001e50 t _<&mut W as core::fmt::Write>::write_str
0000000100001e60 t _alloc::vec::Vec<T>::into_boxed_slice
0000000100001f10 t _alloc::sync::Arc<T>::drop_slow
0000000100001fa0 t _alloc::alloc::box_free
0000000100001fc0 t _alloc::alloc::box_free
0000000100001fe0 t _alloc::slice::<impl alloc::borrow::ToOwned for [T]>::to_owned
00000001000020c0 t _<alloc::string::String as core::fmt::Display>::fmt
00000001000020e0 T _<std::thread::local::AccessError as core::fmt::Debug>::fmt
0000000100002110 t _std::thread::local::fast::Key<T>::try_initialize
00000001000021e0 t _std::thread::local::fast::Key<T>::try_initialize
00000001000022b0 t _std::thread::local::fast::destroy_value
0000000100002340 t _std::thread::local::fast::destroy_value
00000001000023b0 T _std::thread::park
00000001000026f0 T _std::thread::Thread::new
0000000100002a20 T _std::thread::Thread::unpark
0000000100002b20 T _std::env::current_dir
0000000100002d80 T _std::env::_var_os
0000000100003040 t _std::error::Error::type_id
0000000100003050 t _std::error::Error::backtrace
0000000100003060 t _std::error::Error::cause
0000000100003070 T _<std::error::<impl core::convert::From<alloc::string::String> for alloc::boxed::Box<dyn std::error::Error+core::marker::Sync+core::marker::Send>>::from::StringError as std::error::Error>::description
0000000100003080 T _<std::error::<impl core::convert::From<alloc::string::String> for alloc::boxed::Box<dyn std::error::Error+core::marker::Sync+core::marker::Send>>::from::StringError as core::fmt::Display>::fmt
00000001000030a0 T _<std::error::<impl core::convert::From<alloc::string::String> for alloc::boxed::Box<dyn std::error::Error+core::marker::Sync+core::marker::Send>>::from::StringError as core::fmt::Debug>::fmt
00000001000030c0 T _<&[u8] as std::ffi::c_str::CString::new::SpecIntoVec>::into_vec
00000001000031b0 T _std::ffi::c_str::CString::from_vec_unchecked
0000000100003310 T _std::ffi::c_str::<impl core::convert::From<std::ffi::c_str::NulError> for std::io::error::Error>::from
0000000100003410 T _<std::io::error::Error as core::fmt::Display>::fmt
00000001000036c0 t _std::io::impls::<impl std::io::Write for alloc::boxed::Box<W>>::write
00000001000036f0 t _std::io::impls::<impl std::io::Write for alloc::boxed::Box<W>>::write_vectored
0000000100003720 t _std::io::impls::<impl std::io::Write for alloc::boxed::Box<W>>::is_write_vectored
0000000100003740 t _std::io::impls::<impl std::io::Write for alloc::boxed::Box<W>>::flush
0000000100003760 t _std::io::impls::<impl std::io::Write for alloc::boxed::Box<W>>::write_all
0000000100003790 t _std::io::impls::<impl std::io::Write for alloc::boxed::Box<W>>::write_fmt
00000001000037f0 T _<std::io::stdio::StderrRaw as std::io::Write>::write
0000000100003860 T _<std::io::stdio::StderrRaw as std::io::Write>::write_vectored
00000001000038d0 T _<std::io::stdio::StderrRaw as std::io::Write>::flush
00000001000038e0 T _std::io::stdio::set_panic
0000000100003a80 t _std::io::Write::write_all
0000000100003d00 t _std::io::Write::write_all_vectored
0000000100004040 t _std::io::Write::write_all_vectored
0000000100004330 t _std::io::Write::write_fmt
0000000100004510 t _<std::io::Write::write_fmt::Adaptor<T> as core::fmt::Write>::write_str
00000001000045f0 t _std::path::iter_after
0000000100004870 T _<std::path::PrefixComponent as core::cmp::PartialEq>::eq
0000000100004950 T _std::path::Components::as_path
0000000100004e00 t _std::path::Components::parse_next_component_back
0000000100005140 T _<std::path::Components as core::iter::traits::iterator::Iterator>::next
00000001000056d0 T _<std::path::Display as core::fmt::Debug>::fmt
00000001000056f0 T _std::process::abort
0000000100005700 t _std::sync::once::Once::call_once::{{closure}}
00000001000058f0 T _std::sync::once::Once::call_inner
0000000100005bf0 T _<std::sync::once::WaiterQueue as core::ops::drop::Drop>::drop
0000000100005d10 T _<std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
0000000100005f10 t _std::sys_common::backtrace::_print_fmt::{{closure}}
0000000100005f60 t _std::sys_common::backtrace::_print_fmt::{{closure}}::{{closure}}
0000000100006440 t _std::sys_common::backtrace::_print_fmt::{{closure}}
0000000100006550 t _std::sys_common::backtrace::__rust_begin_short_backtrace
0000000100006560 t _std::sys_common::backtrace::output_filename
00000001000067c0 T _<std::sys_common::os_str_bytes::Slice as core::fmt::Debug>::fmt
0000000100006bd0 t _<std::sys_common::poison::PoisonError<T> as core::fmt::Debug>::fmt
0000000100006bf0 t _std::sys_common::thread_info::ThreadInfo::with::{{closure}}
0000000100006d80 T _std::sys_common::thread_info::set
0000000100006f80 t _std::sys_common::util::dumb_print
0000000100006fe0 t _std::sys_common::util::abort
0000000100007030 t _std::sys_common::util::report_overflow
00000001000071c0 t _std::alloc::default_alloc_error_hook
0000000100007290 T _rust_oom
00000001000072b0 T ___rdl_alloc
0000000100007320 T ___rdl_dealloc
0000000100007330 T ___rdl_realloc
00000001000073e0 T ___rust_drop_panic
0000000100007420 t _std::panicking::default_hook
00000001000077f0 t _std::panicking::default_hook::{{closure}}
0000000100007a70 T _std::panicking::panic_count::is_zero_slow_path
0000000100007ad0 T _std::panicking::try::cleanup
0000000100007b50 T _std::panicking::begin_panic_fmt
0000000100007b90 T _rust_begin_unwind
0000000100007c30 T _<std::panicking::begin_panic_handler::PanicPayload as core::panic::BoxMeUp>::take_box
0000000100007da0 T _<std::panicking::begin_panic_handler::PanicPayload as core::panic::BoxMeUp>::get
0000000100007ea0 t _std::panicking::begin_panic
0000000100007ed0 t _<std::panicking::begin_panic::PanicPayload<A> as core::panic::BoxMeUp>::take_box
0000000100007f30 t _<std::panicking::begin_panic::PanicPayload<A> as core::panic::BoxMeUp>::get
0000000100007f50 T _std::panicking::rust_panic_with_hook
0000000100008120 T _rust_panic
0000000100008190 T _std::rt::lang_start_internal
0000000100008480 T _<std::ffi::c_str::NulError as core::fmt::Debug>::fmt
00000001000084f0 t _std::sys::unix::os::error_string
00000001000085f0 t _std::sys::unix::stack_overflow::imp::signal_handler
0000000100008840 t _std::sys::unix::stack_overflow::imp::make_handler
0000000100008940 t _<std::sys::unix::stdio::Stderr as std::io::Write>::is_write_vectored
0000000100008950 T _std::sys::unix::thread_local_dtor::register_dtor
0000000100008af0 t _std::sys::unix::thread_local_dtor::register_dtor::run_dtors
0000000100008c30 t _std::sys::unix::decode_error_kind
0000000100008d70 t _std::sys::unix::abort_internal
0000000100008d80 t _core::ops::function::FnOnce::call_once{{vtable.shim}}
0000000100008d90 t _core::ops::function::FnOnce::call_once{{vtable.shim}}
0000000100008da0 t _core::ptr::drop_in_place
0000000100008db0 t _core::ptr::drop_in_place
0000000100008e30 t _alloc::alloc::box_free
0000000100008e50 t _alloc::alloc::box_free
0000000100008e70 t _panic_unwind::dwarf::eh::read_encoded_pointer
0000000100009040 T ___rust_panic_cleanup
0000000100009070 T ___rust_start_panic
0000000100009120 t _panic_unwind::real_imp::panic::exception_cleanup
0000000100009140 t _panic_unwind::real_imp::find_eh_action::{{closure}}
0000000100009150 t _panic_unwind::real_imp::find_eh_action::{{closure}}
0000000100009160 T _rust_eh_personality
0000000100009490 t _<&T as core::fmt::Display>::fmt
00000001000094b0 t _core::ops::function::FnOnce::call_once{{vtable.shim}}
00000001000094d0 t _core::ptr::drop_in_place
00000001000094e0 t _core::ptr::drop_in_place
0000000100009510 t _<*mut T as core::fmt::Debug>::fmt
0000000100009580 T _backtrace::backtrace::Frame::ip
00000001000095a0 T _backtrace::symbolize::Symbol::name
00000001000098b0 T _backtrace::symbolize::SymbolName::as_str
0000000100009910 T _backtrace::print::BacktraceFmt::new
0000000100009930 T _backtrace::print::BacktraceFmt::add_context
0000000100009930 T _backtrace::print::BacktraceFmt::finish
0000000100009940 T _backtrace::print::BacktraceFmt::frame
0000000100009950 T _backtrace::print::BacktraceFrameFmt::symbol
0000000100009a00 T _backtrace::print::BacktraceFrameFmt::print_raw
000000010000a100 T _<backtrace::print::BacktraceFrameFmt as core::ops::drop::Drop>::drop
000000010000a110 T _backtrace::backtrace::libunwind::trace::trace_fn
000000010000a160 T _<backtrace::symbolize::SymbolName as core::fmt::Display>::fmt
000000010000a260 t _backtrace::symbolize::libbacktrace::error_cb
000000010000a270 t _backtrace::symbolize::libbacktrace::syminfo_cb
000000010000a350 t _backtrace::symbolize::libbacktrace::pcinfo_cb
000000010000a3b0 T _backtrace::symbolize::libbacktrace::resolve
000000010000a580 t _backtrace::symbolize::libbacktrace::resolve::{{closure}}
000000010000a5a0 t ___rdos_backtrace_alloc
000000010000a5f0 t ___rdos_backtrace_free
000000010000a600 t ___rdos_backtrace_vector_grow
000000010000a6c0 t ___rdos_backtrace_vector_finish
000000010000a740 t ___rdos_backtrace_vector_release
000000010000a7b0 t ___rdos_backtrace_dwarf_add
000000010000c9f0 t _dwarf_fileline
000000010000ca80 t _unit_addrs_compare
000000010000cad0 t _read_uint64
000000010000cbd0 t _find_address_ranges
000000010000d6c0 t _abbrev_compare
000000010000d6e0 t _read_attribute
000000010000f4d0 t _resolve_string
000000010000f760 t _add_ranges
00000001000128d0 t _add_unit_addr
0000000100012970 t _dwarf_lookup_pc
0000000100012ff0 t _unit_addrs_search
0000000100013010 t _read_line_info
0000000100015ed0 t _line_search
0000000100015ef0 t _function_addrs_search
0000000100015f10 t _report_inlined_functions
0000000100016040 t _line_compare
0000000100016070 t _read_line_header_format_entries
00000001000168a0 t _read_function_entry
0000000100017750 t _function_addrs_compare
0000000100017790 t _read_referenced_name_from_attr
00000001000178c0 t _add_function_range
0000000100017960 t _read_referenced_name
0000000100017ee0 t _units_search
0000000100017f00 t ___rdos_backtrace_pcinfo
0000000100017f70 t _fileline_initialize
00000001000181d0 t ___rdos_backtrace_syminfo
0000000100018230 t ___rdos_backtrace_open
00000001000182a0 t ___rdos_backtrace_close
00000001000182e0 t ___rdos_backtrace_qsort
0000000100018ab0 t ___rdos_backtrace_create_state
0000000100018b30 t ___rdos_backtrace_get_view
0000000100018c50 t ___rdos_backtrace_release_view
0000000100018c90 t ___rdos_backtrace_initialize
0000000100018e80 t _macho_nodebug
0000000100018ea0 t ___rdos_macho_add
0000000100019cc0 t _macho_syminfo
0000000100019d60 t _macho_nosyms
0000000100019d80 t _macho_add_fat
0000000100019ec0 t _macho_add_dwarf_segment
000000010001a070 t _macho_add_dwarf_section
000000010001a1d0 t _macho_symbol_compare
000000010001a1f0 t _macho_symbol_search
000000010001a240 t _core::ptr::drop_in_place
000000010001a250 t _core::str::traits::<impl core::slice::SliceIndex<str> for core::ops::range::Range<usize>>::index::{{closure}}
000000010001a280 t _core::str::traits::<impl core::slice::SliceIndex<str> for core::ops::range::RangeTo<usize>>::index::{{closure}}
000000010001a2a0 t _core::str::traits::<impl core::slice::SliceIndex<str> for core::ops::range::RangeFrom<usize>>::index::{{closure}}
000000010001a2d0 t _<core::str::Split<P> as core::iter::traits::iterator::Iterator>::next
000000010001a440 T _<rustc_demangle::legacy::Demangle as core::fmt::Display>::fmt
000000010001b190 T _<rustc_demangle::v0::Ident as core::fmt::Display>::fmt
000000010001b630 t _rustc_demangle::v0::Parser::ident
000000010001b8a0 t _rustc_demangle::v0::Parser::skip_path
000000010001be70 t _rustc_demangle::v0::Parser::skip_type
000000010001c4a0 t _rustc_demangle::v0::Parser::skip_const
000000010001c670 t _rustc_demangle::v0::Printer::print_lifetime_from_index
000000010001c740 t _rustc_demangle::v0::Printer::print_path
000000010001cff0 t _rustc_demangle::v0::Printer::print_generic_arg
000000010001d100 t _rustc_demangle::v0::Printer::print_type
000000010001dce0 t _rustc_demangle::v0::Printer::print_type::{{closure}}
000000010001e060 t _rustc_demangle::v0::Printer::print_path_maybe_open_generics
000000010001e270 t _rustc_demangle::v0::Printer::print_dyn_trait
000000010001e400 t _rustc_demangle::v0::Printer::print_const
000000010001e940 T _rustc_demangle::demangle
000000010001f6e0 T _rustc_demangle::try_demangle
000000010001f750 T _rustc_demangle::Demangle::as_str
000000010001f760 T _<rustc_demangle::Demangle as core::fmt::Debug>::fmt
000000010001f760 T _<rustc_demangle::Demangle as core::fmt::Display>::fmt
000000010001f800 T _alloc::alloc::handle_alloc_error
000000010001f810 T _alloc::raw_vec::capacity_overflow
000000010001f830 T _alloc::string::<impl core::convert::From<alloc::string::String> for alloc::vec::Vec<u8>>::from
000000010001f850 t _core::ops::function::FnOnce::call_once
000000010001f870 t _core::ptr::drop_in_place
000000010001f880 t _core::num::from_str_radix
000000010001f9f0 t _<core::ops::range::Range<Idx> as core::fmt::Debug>::fmt
000000010001fa70 t _<T as core::any::Any>::type_id
000000010001fa80 T _<core::cell::BorrowError as core::fmt::Debug>::fmt
000000010001faa0 T _<core::cell::BorrowMutError as core::fmt::Debug>::fmt
000000010001fac0 T _<core::char::EscapeDebug as core::iter::traits::iterator::Iterator>::next
000000010001fba0 T _core::option::expect_failed
000000010001fc00 T _core::option::expect_none_failed
000000010001fc00 T _core::result::unwrap_failed
000000010001fc80 T _core::panic::PanicInfo::payload
000000010001fc90 T _core::panic::PanicInfo::message
000000010001fca0 T _core::panic::PanicInfo::location
000000010001fcb0 T _core::panic::Location::caller
000000010001fcc0 T _<core::panic::Location as core::fmt::Display>::fmt
000000010001fd40 T _core::panicking::panic
000000010001fd90 T _core::panicking::panic_bounds_check
000000010001fe00 T _core::panicking::panic_fmt
000000010001fe30 T _<core::fmt::builders::PadAdapter as core::fmt::Write>::write_str
0000000100020040 T _core::fmt::builders::DebugStruct::field
00000001000201f0 T _core::fmt::builders::DebugStruct::finish
0000000100020250 T _core::fmt::builders::DebugTuple::field
0000000100020380 T _core::fmt::builders::DebugTuple::finish
0000000100020400 t _core::fmt::builders::DebugInner::entry
0000000100020510 T _core::fmt::builders::DebugSet::entry
0000000100020510 T _core::fmt::builders::DebugList::entry
0000000100020530 T _core::fmt::builders::DebugList::finish
0000000100020560 t _core::fmt::Write::write_char
0000000100020630 t _core::fmt::Write::write_fmt
0000000100020690 t _<&mut W as core::fmt::Write>::write_str
00000001000206a0 t _<&mut W as core::fmt::Write>::write_char
0000000100020780 t _<&mut W as core::fmt::Write>::write_fmt
00000001000207e0 T _core::fmt::ArgumentV1::from_usize
00000001000207f0 T _<core::fmt::Arguments as core::fmt::Debug>::fmt
00000001000207f0 T _<core::fmt::Arguments as core::fmt::Display>::fmt
0000000100020850 T _core::fmt::write
0000000100020b00 T _core::fmt::Formatter::pad_integral
0000000100020fe0 t _core::fmt::Formatter::pad_integral::write_prefix
0000000100021040 T _core::fmt::Formatter::pad
0000000100021620 T _core::fmt::Formatter::write_str
0000000100021640 T _core::fmt::Formatter::write_fmt
00000001000216a0 T _core::fmt::Formatter::alternate
00000001000216b0 T _core::fmt::Formatter::debug_lower_hex
00000001000216c0 T _core::fmt::Formatter::debug_upper_hex
00000001000216d0 T _core::fmt::Formatter::debug_struct
0000000100021700 T _core::fmt::Formatter::debug_tuple
0000000100021750 T _core::fmt::Formatter::debug_list
0000000100021790 T _<core::fmt::Formatter as core::fmt::Write>::write_char
00000001000217b0 T _<str as core::fmt::Debug>::fmt
0000000100021c60 T _<str as core::fmt::Display>::fmt
0000000100021c80 T _<char as core::fmt::Debug>::fmt
0000000100021f90 T _<char as core::fmt::Display>::fmt
0000000100022080 T _core::slice::memchr::memchr
0000000100022260 T _core::slice::slice_start_index_len_fail
00000001000222d0 T _core::slice::slice_end_index_len_fail
0000000100022340 T _core::slice::slice_index_order_fail
00000001000223b0 T _core::str::pattern::StrSearcher::new
0000000100022c10 T _core::str::lossy::Utf8Lossy::from_bytes
0000000100022c20 T _core::str::lossy::Utf8Lossy::chunks
0000000100022c30 T _<core::str::lossy::Utf8LossyChunksIter as core::iter::traits::iterator::Iterator>::next
00000001000230c0 T _<core::str::lossy::Utf8Lossy as core::fmt::Display>::fmt
00000001000231b0 T _core::str::Utf8Error::valid_up_to
00000001000231c0 T _core::str::Utf8Error::error_len
00000001000231d0 T _core::str::from_utf8
0000000100023450 t _core::str::traits::<impl core::slice::SliceIndex<str> for core::ops::range::Range<usize>>::index::{{closure}}
0000000100023480 T _core::str::slice_error_fail
0000000100023840 T _core::unicode::printable::is_printable
0000000100023ae0 T _core::num::<impl u32>::from_str_radix
0000000100023af0 T _core::num::<impl core::str::FromStr for u64>::from_str
0000000100023af0 T _core::num::<impl core::str::FromStr for usize>::from_str
0000000100023b70 T _<core::num::ParseIntError as core::fmt::Debug>::fmt
0000000100023c20 t _core::fmt::num::<impl core::fmt::Debug for usize>::fmt
0000000100023e40 T _core::fmt::num::<impl core::fmt::LowerHex for i8>::fmt
0000000100023e40 T _core::fmt::num::<impl core::fmt::LowerHex for u8>::fmt
0000000100023ed0 T _core::fmt::num::<impl core::fmt::UpperHex for i8>::fmt
0000000100023ed0 T _core::fmt::num::<impl core::fmt::UpperHex for u8>::fmt
0000000100023f60 T _core::fmt::num::<impl core::fmt::LowerHex for i64>::fmt
0000000100023f60 T _core::fmt::num::<impl core::fmt::LowerHex for u64>::fmt
0000000100023f60 T _core::fmt::num::<impl core::fmt::LowerHex for isize>::fmt
0000000100023f60 T _core::fmt::num::<impl core::fmt::LowerHex for usize>::fmt
0000000100023ff0 T _core::fmt::num::<impl core::fmt::UpperHex for i64>::fmt
0000000100023ff0 T _core::fmt::num::<impl core::fmt::UpperHex for u64>::fmt
0000000100023ff0 T _core::fmt::num::<impl core::fmt::UpperHex for isize>::fmt
0000000100023ff0 T _core::fmt::num::<impl core::fmt::UpperHex for usize>::fmt
0000000100024080 T _core::fmt::num::imp::<impl core::fmt::Display for u8>::fmt
0000000100024110 T _core::fmt::num::imp::<impl core::fmt::Display for i32>::fmt
0000000100024250 T _core::fmt::num::imp::<impl core::fmt::Display for u32>::fmt
0000000100024380 T _core::fmt::num::imp::<impl core::fmt::Display for u64>::fmt
0000000100024380 T _core::fmt::num::imp::<impl core::fmt::Display for usize>::fmt
00000001000244b0 t _<&T as core::fmt::Debug>::fmt
0000000100024570 t _<&T as core::fmt::Debug>::fmt
00000001000246d0 t _<&T as core::fmt::Debug>::fmt
00000001000247c0 t _<&T as core::fmt::Debug>::fmt
00000001000247e0 t _<&T as core::fmt::Debug>::fmt
00000001000247f0 t _<&T as core::fmt::Display>::fmt
0000000100024810 T _<core::str::Utf8Error as core::fmt::Debug>::fmt
00000001000248e0 T _core::unicode::unicode_data::cc::lookup
0000000100024900 T _core::unicode::unicode_data::grapheme_extend::lookup

217 function entries in __unwind_info

$ unwinddump target/debug/unwind_info | rustfilt
### deletia ###
	second level index[0] sectionOffset=0x000001F4, count=2, fileOffset=0x00027C0C
		kind=UNWIND_SECOND_LEVEL_COMPRESSED
		entryPageOffset=0x0000000C
		entryCount=0x000000D9
		encodingsPageOffset=0x00000370
		encodingsCount=0x00000002
			[  0] funcOffset=0x00000C60, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<() as std::process::Termination>::report
			[  1] funcOffset=0x00000CD0, encoding[ 12]=0x51000000 (rbp frame, no saved registers LSDA                      ) _core::ops::function::FnOnce::call_once
			[  2] funcOffset=0x00000D10, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::ptr::drop_in_place
			[  3] funcOffset=0x00000E00, encoding[ 11]=0x02010000 (stack size=8, no registers saved                        ) ___rust_alloc
			[  4] funcOffset=0x00000E30, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<T as core::any::Any>::type_id
			[  5] funcOffset=0x00000E60, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _<&T as core::fmt::Debug>::fmt
			[  6] funcOffset=0x00000EE0, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _<&T as core::fmt::Debug>::fmt
			[  7] funcOffset=0x00000F80, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<&T as core::fmt::Display>::fmt
			[  8] funcOffset=0x00001110, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _core::ops::function::FnOnce::call_once{{vtable.shim}}
			[  9] funcOffset=0x00001190, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::ops::function::FnOnce::call_once{{vtable.shim}}
			[ 10] funcOffset=0x000011E0, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _core::ptr::drop_in_place
			[ 11] funcOffset=0x00001220, encoding[  8]=0x51030161 (rbp frame, at -24:rbx,r14,r15 LSDA                      ) _core::ptr::drop_in_place
			[ 12] funcOffset=0x000012B0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::ptr::drop_in_place
			[ 13] funcOffset=0x000012F0, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _core::ptr::drop_in_place
			[ 14] funcOffset=0x00001350, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _core::ptr::drop_in_place
			[ 15] funcOffset=0x00001440, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::ptr::drop_in_place
			[ 16] funcOffset=0x00001470, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _core::ptr::drop_in_place
			[ 17] funcOffset=0x000014B0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::ptr::drop_in_place
			[ 18] funcOffset=0x00001520, encoding[  8]=0x51030161 (rbp frame, at -24:rbx,r14,r15 LSDA                      ) _core::ptr::drop_in_place
			[ 19] funcOffset=0x000015B0, encoding[  8]=0x51030161 (rbp frame, at -24:rbx,r14,r15 LSDA                      ) _core::ptr::drop_in_place
			[ 20] funcOffset=0x00001640, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _core::ptr::drop_in_place
			[ 21] funcOffset=0x000016A0, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _core::ptr::drop_in_place
			[ 22] funcOffset=0x000016F0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::ptr::drop_in_place
			[ 23] funcOffset=0x00001790, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _core::ptr::drop_in_place
			[ 24] funcOffset=0x000017E0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::ptr::drop_in_place
			[ 25] funcOffset=0x00001820, encoding[  8]=0x51030161 (rbp frame, at -24:rbx,r14,r15 LSDA                      ) _core::ptr::drop_in_place
			[ 26] funcOffset=0x000018D0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::ptr::drop_in_place
			[ 27] funcOffset=0x000019D0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _<&mut W as core::fmt::Write>::write_char
			[ 28] funcOffset=0x00001BE0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<&mut W as core::fmt::Write>::write_char
			[ 29] funcOffset=0x00001D80, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _<&mut W as core::fmt::Write>::write_str
			[ 30] funcOffset=0x00001E50, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<&mut W as core::fmt::Write>::write_str
			[ 31] funcOffset=0x00001E60, encoding[  8]=0x51030161 (rbp frame, at -24:rbx,r14,r15 LSDA                      ) _alloc::vec::Vec<T>::into_boxed_slice
			[ 32] funcOffset=0x00001F10, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _alloc::sync::Arc<T>::drop_slow
			[ 33] funcOffset=0x00001FA0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _alloc::alloc::box_free
			[ 34] funcOffset=0x00001FE0, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _alloc::slice::<impl alloc::borrow::ToOwned for [T]>::to_owned
			[ 35] funcOffset=0x000020C0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<alloc::string::String as core::fmt::Display>::fmt
			[ 36] funcOffset=0x000020E0, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _<std::thread::local::AccessError as core::fmt::Debug>::fmt
			[ 37] funcOffset=0x000021E0, encoding[  8]=0x51030161 (rbp frame, at -24:rbx,r14,r15 LSDA                      ) _std::thread::local::fast::Key<T>::try_initialize
			[ 38] funcOffset=0x000022B0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _std::thread::local::fast::destroy_value
			[ 39] funcOffset=0x00002340, encoding[  8]=0x51030161 (rbp frame, at -24:rbx,r14,r15 LSDA                      ) _std::thread::local::fast::destroy_value
			[ 40] funcOffset=0x000023B0, encoding[ 10]=0x51010001 (rbp frame, at -8:rbx LSDA                               ) _std::thread::park
			[ 41] funcOffset=0x000026F0, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::thread::Thread::new
			[ 42] funcOffset=0x00002A20, encoding[ 10]=0x51010001 (rbp frame, at -8:rbx LSDA                               ) _std::thread::Thread::unpark
			[ 43] funcOffset=0x00002B20, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::env::current_dir
			[ 44] funcOffset=0x00002D80, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::env::_var_os
			[ 45] funcOffset=0x00003040, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _std::error::Error::type_id
			[ 46] funcOffset=0x000030C0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _<&[u8] as std::ffi::c_str::CString::new::SpecIntoVec>::into_vec
			[ 47] funcOffset=0x000031B0, encoding[  9]=0x51040B11 (rbp frame, at -32:rbx,r12,r14,r15 LSDA                  ) _std::ffi::c_str::CString::from_vec_unchecked
			[ 48] funcOffset=0x00003310, encoding[  7]=0x01030161 (rbp frame, at -24:rbx,r14,r15                           ) _std::ffi::c_str::<impl core::convert::From<std::ffi::c_str::NulError> for std::io::error::Error>::from
			[ 49] funcOffset=0x00003410, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _<std::io::error::Error as core::fmt::Display>::fmt
			[ 50] funcOffset=0x000036C0, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _std::io::impls::<impl std::io::Write for alloc::boxed::Box<W>>::write
			[ 51] funcOffset=0x00003720, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _std::io::impls::<impl std::io::Write for alloc::boxed::Box<W>>::is_write_vectored
			[ 52] funcOffset=0x00003740, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _std::io::impls::<impl std::io::Write for alloc::boxed::Box<W>>::flush
			[ 53] funcOffset=0x000038D0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<std::io::stdio::StderrRaw as std::io::Write>::flush
			[ 54] funcOffset=0x000038E0, encoding[  9]=0x51040B11 (rbp frame, at -32:rbx,r12,r14,r15 LSDA                  ) _std::io::stdio::set_panic
			[ 55] funcOffset=0x00003A80, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::io::Write::write_all
			[ 56] funcOffset=0x00003D00, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::io::Write::write_all_vectored
			[ 57] funcOffset=0x00004040, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::io::Write::write_all_vectored
			[ 58] funcOffset=0x00004330, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _std::io::Write::write_fmt
			[ 59] funcOffset=0x00004510, encoding[  9]=0x51040B11 (rbp frame, at -32:rbx,r12,r14,r15 LSDA                  ) _<std::io::Write::write_fmt::Adaptor<T> as core::fmt::Write>::write_str
			[ 60] funcOffset=0x000045F0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _std::path::iter_after
			[ 61] funcOffset=0x00004870, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _<std::path::PrefixComponent as core::cmp::PartialEq>::eq
			[ 62] funcOffset=0x00004950, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _std::path::Components::as_path
			[ 63] funcOffset=0x00004E00, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _std::path::Components::parse_next_component_back
			[ 64] funcOffset=0x00005140, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _<std::path::Components as core::iter::traits::iterator::Iterator>::next
			[ 65] funcOffset=0x000056D0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<std::path::Display as core::fmt::Debug>::fmt
			[ 66] funcOffset=0x00005700, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::sync::once::Once::call_once::{{closure}}
			[ 67] funcOffset=0x000058F0, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::sync::once::Once::call_inner
			[ 68] funcOffset=0x00005BF0, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _<std::sync::once::WaiterQueue as core::ops::drop::Drop>::drop
			[ 69] funcOffset=0x00005D10, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _<std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
			[ 70] funcOffset=0x00005F10, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _std::sys_common::backtrace::_print_fmt::{{closure}}
			[ 71] funcOffset=0x00005F60, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::sys_common::backtrace::_print_fmt::{{closure}}::{{closure}}
			[ 72] funcOffset=0x00006440, encoding[ 10]=0x51010001 (rbp frame, at -8:rbx LSDA                               ) _std::sys_common::backtrace::_print_fmt::{{closure}}
			[ 73] funcOffset=0x00006550, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _std::sys_common::backtrace::__rust_begin_short_backtrace
			[ 74] funcOffset=0x00006560, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::sys_common::backtrace::output_filename
			[ 75] funcOffset=0x000067C0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _<std::sys_common::os_str_bytes::Slice as core::fmt::Debug>::fmt
			[ 76] funcOffset=0x00006BD0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<std::sys_common::poison::PoisonError<T> as core::fmt::Debug>::fmt
			[ 77] funcOffset=0x00006BF0, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _std::sys_common::thread_info::ThreadInfo::with::{{closure}}
			[ 78] funcOffset=0x00006D80, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _std::sys_common::thread_info::set
			[ 79] funcOffset=0x00006F80, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _std::sys_common::util::dumb_print
			[ 80] funcOffset=0x00006FE0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _std::sys_common::util::abort
			[ 81] funcOffset=0x00007030, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _std::sys_common::util::report_overflow
			[ 82] funcOffset=0x000071C0, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _std::alloc::default_alloc_error_hook
			[ 83] funcOffset=0x00007290, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _rust_oom
			[ 84] funcOffset=0x00007330, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) ___rdl_realloc
			[ 85] funcOffset=0x000073E0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) ___rust_drop_panic
			[ 86] funcOffset=0x00007420, encoding[  9]=0x51040B11 (rbp frame, at -32:rbx,r12,r14,r15 LSDA                  ) _std::panicking::default_hook
			[ 87] funcOffset=0x000077F0, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::panicking::default_hook::{{closure}}
			[ 88] funcOffset=0x00007A70, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _std::panicking::panic_count::is_zero_slow_path
			[ 89] funcOffset=0x00007B50, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _std::panicking::begin_panic_fmt
			[ 90] funcOffset=0x00007B90, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _rust_begin_unwind
			[ 91] funcOffset=0x00007C30, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _<std::panicking::begin_panic_handler::PanicPayload as core::panic::BoxMeUp>::take_box
			[ 92] funcOffset=0x00007DA0, encoding[  5]=0x51020021 (rbp frame, at -16:rbx,r14 LSDA                          ) _<std::panicking::begin_panic_handler::PanicPayload as core::panic::BoxMeUp>::get
			[ 93] funcOffset=0x00007EA0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _std::panicking::begin_panic
			[ 94] funcOffset=0x00007ED0, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _<std::panicking::begin_panic::PanicPayload<A> as core::panic::BoxMeUp>::take_box
			[ 95] funcOffset=0x00007F30, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<std::panicking::begin_panic::PanicPayload<A> as core::panic::BoxMeUp>::get
			[ 96] funcOffset=0x00007F50, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _std::panicking::rust_panic_with_hook
			[ 97] funcOffset=0x00008120, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _rust_panic
			[ 98] funcOffset=0x00008190, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::rt::lang_start_internal
			[ 99] funcOffset=0x00008480, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _<std::ffi::c_str::NulError as core::fmt::Debug>::fmt
			[100] funcOffset=0x000084F0, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _std::sys::unix::os::error_string
			[101] funcOffset=0x000085F0, encoding[  9]=0x51040B11 (rbp frame, at -32:rbx,r12,r14,r15 LSDA                  ) _std::sys::unix::stack_overflow::imp::signal_handler
			[102] funcOffset=0x00008840, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _std::sys::unix::stack_overflow::imp::make_handler
			[103] funcOffset=0x00008940, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<std::sys::unix::stdio::Stderr as std::io::Write>::is_write_vectored
			[104] funcOffset=0x00008950, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _std::sys::unix::thread_local_dtor::register_dtor
			[105] funcOffset=0x00008AF0, encoding[  6]=0x510558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15 LSDA              ) _std::sys::unix::thread_local_dtor::register_dtor::run_dtors
			[106] funcOffset=0x00008C30, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _std::sys::unix::decode_error_kind
			[107] funcOffset=0x00008DB0, encoding[  8]=0x51030161 (rbp frame, at -24:rbx,r14,r15 LSDA                      ) _core::ptr::drop_in_place
			[108] funcOffset=0x00008E30, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _alloc::alloc::box_free
			[109] funcOffset=0x00008E70, encoding[  7]=0x01030161 (rbp frame, at -24:rbx,r14,r15                           ) _panic_unwind::dwarf::eh::read_encoded_pointer
			[110] funcOffset=0x00009040, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) ___rust_panic_cleanup
			[111] funcOffset=0x00009120, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _panic_unwind::real_imp::panic::exception_cleanup
			[112] funcOffset=0x00009160, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _rust_eh_personality
			[113] funcOffset=0x00009490, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<&T as core::fmt::Display>::fmt
			[114] funcOffset=0x00009510, encoding[  7]=0x01030161 (rbp frame, at -24:rbx,r14,r15                           ) _<*mut T as core::fmt::Debug>::fmt
			[115] funcOffset=0x00009580, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _backtrace::backtrace::Frame::ip
			[116] funcOffset=0x000095A0, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _backtrace::symbolize::Symbol::name
			[117] funcOffset=0x000098B0, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _backtrace::symbolize::SymbolName::as_str
			[118] funcOffset=0x00009910, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _backtrace::print::BacktraceFmt::new
			[119] funcOffset=0x00009950, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _backtrace::print::BacktraceFrameFmt::symbol
			[120] funcOffset=0x0000A100, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<backtrace::print::BacktraceFrameFmt as core::ops::drop::Drop>::drop
			[121] funcOffset=0x0000A110, encoding[ 10]=0x51010001 (rbp frame, at -8:rbx LSDA                               ) _backtrace::backtrace::libunwind::trace::trace_fn
			[122] funcOffset=0x0000A160, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _<backtrace::symbolize::SymbolName as core::fmt::Display>::fmt
			[123] funcOffset=0x0000A260, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _backtrace::symbolize::libbacktrace::error_cb
			[124] funcOffset=0x0000A270, encoding[  9]=0x51040B11 (rbp frame, at -32:rbx,r12,r14,r15 LSDA                  ) _backtrace::symbolize::libbacktrace::syminfo_cb
			[125] funcOffset=0x0000A350, encoding[ 10]=0x51010001 (rbp frame, at -8:rbx LSDA                               ) _backtrace::symbolize::libbacktrace::pcinfo_cb
			[126] funcOffset=0x0000A3B0, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _backtrace::symbolize::libbacktrace::resolve
			[127] funcOffset=0x0000A580, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _backtrace::symbolize::libbacktrace::resolve::{{closure}}
			[128] funcOffset=0x0000A5A0, encoding[  7]=0x01030161 (rbp frame, at -24:rbx,r14,r15                           ) ___rdos_backtrace_alloc
			[129] funcOffset=0x0000A5F0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) ___rdos_backtrace_free
			[130] funcOffset=0x0000A600, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) ___rdos_backtrace_vector_grow
			[131] funcOffset=0x0000A6C0, encoding[  7]=0x01030161 (rbp frame, at -24:rbx,r14,r15                           ) ___rdos_backtrace_vector_finish
			[132] funcOffset=0x0000A7B0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) ___rdos_backtrace_dwarf_add
			[133] funcOffset=0x0000CA80, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _unit_addrs_compare
			[134] funcOffset=0x0000CAD0, encoding[  7]=0x01030161 (rbp frame, at -24:rbx,r14,r15                           ) _read_uint64
			[135] funcOffset=0x0000CBD0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _find_address_ranges
			[136] funcOffset=0x0000D6C0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _abbrev_compare
			[137] funcOffset=0x0000D6E0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _read_attribute
			[138] funcOffset=0x000128D0, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _add_unit_addr
			[139] funcOffset=0x00012970, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _dwarf_lookup_pc
			[140] funcOffset=0x00012FF0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _unit_addrs_search
			[141] funcOffset=0x00013010, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _read_line_info
			[142] funcOffset=0x00015ED0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _line_search
			[143] funcOffset=0x00015F10, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _report_inlined_functions
			[144] funcOffset=0x00016040, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _line_compare
			[145] funcOffset=0x00016070, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _read_line_header_format_entries
			[146] funcOffset=0x00017750, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _function_addrs_compare
			[147] funcOffset=0x00017790, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _read_referenced_name_from_attr
			[148] funcOffset=0x00017960, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _read_referenced_name
			[149] funcOffset=0x00017EE0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _units_search
			[150] funcOffset=0x00017F00, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) ___rdos_backtrace_pcinfo
			[151] funcOffset=0x00018230, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) ___rdos_backtrace_open
			[152] funcOffset=0x000182A0, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) ___rdos_backtrace_close
			[153] funcOffset=0x000182E0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) ___rdos_backtrace_qsort
			[154] funcOffset=0x00018AB0, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) ___rdos_backtrace_create_state
			[155] funcOffset=0x00018B30, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) ___rdos_backtrace_get_view
			[156] funcOffset=0x00018C50, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) ___rdos_backtrace_release_view
			[157] funcOffset=0x00018C90, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) ___rdos_backtrace_initialize
			[158] funcOffset=0x00018E80, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _macho_nodebug
			[159] funcOffset=0x00018EA0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) ___rdos_macho_add
			[160] funcOffset=0x00019D60, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _macho_nosyms
			[161] funcOffset=0x00019D80, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _macho_add_fat
			[162] funcOffset=0x0001A1D0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _macho_symbol_compare
			[163] funcOffset=0x0001A2D0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _<core::str::Split<P> as core::iter::traits::iterator::Iterator>::next
			[164] funcOffset=0x0001B630, encoding[  7]=0x01030161 (rbp frame, at -24:rbx,r14,r15                           ) _rustc_demangle::v0::Parser::ident
			[165] funcOffset=0x0001B8A0, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _rustc_demangle::v0::Parser::skip_path
			[166] funcOffset=0x0001BE70, encoding[  7]=0x01030161 (rbp frame, at -24:rbx,r14,r15                           ) _rustc_demangle::v0::Parser::skip_type
			[167] funcOffset=0x0001C4A0, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _rustc_demangle::v0::Parser::skip_const
			[168] funcOffset=0x0001C670, encoding[  7]=0x01030161 (rbp frame, at -24:rbx,r14,r15                           ) _rustc_demangle::v0::Printer::print_lifetime_from_index
			[169] funcOffset=0x0001C740, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _rustc_demangle::v0::Printer::print_path
			[170] funcOffset=0x0001CFF0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _rustc_demangle::v0::Printer::print_generic_arg
			[171] funcOffset=0x0001D100, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _rustc_demangle::v0::Printer::print_type
			[172] funcOffset=0x0001E060, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _rustc_demangle::v0::Printer::print_path_maybe_open_generics
			[173] funcOffset=0x0001E270, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _rustc_demangle::v0::Printer::print_dyn_trait
			[174] funcOffset=0x0001F6E0, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _rustc_demangle::try_demangle
			[175] funcOffset=0x0001F750, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _rustc_demangle::Demangle::as_str
			[176] funcOffset=0x0001F760, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _<rustc_demangle::Demangle as core::fmt::Debug>::fmt
			[177] funcOffset=0x0001F800, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _alloc::alloc::handle_alloc_error
			[178] funcOffset=0x0001F880, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _core::num::from_str_radix
			[179] funcOffset=0x0001F9F0, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _<core::ops::range::Range<Idx> as core::fmt::Debug>::fmt
			[180] funcOffset=0x0001FA70, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<T as core::any::Any>::type_id
			[181] funcOffset=0x0001FE30, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _<core::fmt::builders::PadAdapter as core::fmt::Write>::write_str
			[182] funcOffset=0x000201F0, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _core::fmt::builders::DebugStruct::finish
			[183] funcOffset=0x00020250, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _core::fmt::builders::DebugTuple::field
			[184] funcOffset=0x00020380, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _core::fmt::builders::DebugTuple::finish
			[185] funcOffset=0x00020400, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _core::fmt::builders::DebugInner::entry
			[186] funcOffset=0x00020510, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _core::fmt::builders::DebugSet::entry
			[187] funcOffset=0x00020530, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::fmt::builders::DebugList::finish
			[188] funcOffset=0x00020850, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _core::fmt::write
			[189] funcOffset=0x00020FE0, encoding[  7]=0x01030161 (rbp frame, at -24:rbx,r14,r15                           ) _core::fmt::Formatter::pad_integral::write_prefix
			[190] funcOffset=0x00021040, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _core::fmt::Formatter::pad
			[191] funcOffset=0x00021620, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::fmt::Formatter::write_str
			[192] funcOffset=0x000216D0, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _core::fmt::Formatter::debug_struct
			[193] funcOffset=0x00021700, encoding[  7]=0x01030161 (rbp frame, at -24:rbx,r14,r15                           ) _core::fmt::Formatter::debug_tuple
			[194] funcOffset=0x00021750, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _core::fmt::Formatter::debug_list
			[195] funcOffset=0x00021790, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<core::fmt::Formatter as core::fmt::Write>::write_char
			[196] funcOffset=0x000217B0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _<str as core::fmt::Debug>::fmt
			[197] funcOffset=0x00021C60, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<str as core::fmt::Display>::fmt
			[198] funcOffset=0x00021C80, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _<char as core::fmt::Debug>::fmt
			[199] funcOffset=0x00021F90, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<char as core::fmt::Display>::fmt
			[200] funcOffset=0x000223B0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _core::str::pattern::StrSearcher::new
			[201] funcOffset=0x00022C10, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::str::lossy::Utf8Lossy::from_bytes
			[202] funcOffset=0x00022C30, encoding[  4]=0x01040B11 (rbp frame, at -32:rbx,r12,r14,r15                       ) _<core::str::lossy::Utf8LossyChunksIter as core::iter::traits::iterator::Iterator>::next
			[203] funcOffset=0x000230C0, encoding[  1]=0x010558D1 (rbp frame, at -40:rbx,r12,r13,r14,r15                   ) _<core::str::lossy::Utf8Lossy as core::fmt::Display>::fmt
			[204] funcOffset=0x000231B0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::str::Utf8Error::valid_up_to
			[205] funcOffset=0x000231D0, encoding[  7]=0x01030161 (rbp frame, at -24:rbx,r14,r15                           ) _core::str::from_utf8
			[206] funcOffset=0x00023450, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::str::traits::<impl core::slice::SliceIndex<str> for core::ops::range::Range<usize>>::index::{{closure}}
			[207] funcOffset=0x00023840, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _core::unicode::printable::is_printable
			[208] funcOffset=0x00023AE0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::num::<impl u32>::from_str_radix
			[209] funcOffset=0x00023B70, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _<core::num::ParseIntError as core::fmt::Debug>::fmt
			[210] funcOffset=0x00023C20, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::fmt::num::<impl core::fmt::Debug for usize>::fmt
			[211] funcOffset=0x00024110, encoding[  2]=0x01010001 (rbp frame, at -8:rbx                                    ) _core::fmt::num::imp::<impl core::fmt::Display for i32>::fmt
			[212] funcOffset=0x00024250, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::fmt::num::imp::<impl core::fmt::Display for u32>::fmt
			[213] funcOffset=0x000246D0, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _<&T as core::fmt::Debug>::fmt
			[214] funcOffset=0x000247C0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _<&T as core::fmt::Debug>::fmt
			[215] funcOffset=0x00024810, encoding[  3]=0x01020021 (rbp frame, at -16:rbx,r14                               ) _<core::str::Utf8Error as core::fmt::Debug>::fmt
			[216] funcOffset=0x000248E0, encoding[  0]=0x01000000 (rbp frame, no saved registers                           ) _core::unicode::unicode_data::cc::lookup

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsC-bugCategory: This is a bug.O-macosOperating system: macOS

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions