Inline stacks for rust standard library seem to be missing
jrmuizel opened this issue · comments
See https://crash-stats.mozilla.org/report/index/ae968262-7b1b-4835-885e-39b4d0220909
The crash report has alloc::alloc::handle_alloc_error()
being called by cert_storage::load_crlite_stash_from_reader_into_map(..)
but load_crlite_stash_from_reader_into_map
doesn't call handle_alloc_error
. There should be some frames from Vec
there instead.
This is a counter example where we do get some inline stacks from the standard library:
https://crash-stats.mozilla.org/report/index/413609a1-8c3a-42b1-8897-89cf70220909
For future reference, this is at 0x4cb7f02 in xul.pdb E0D4358DF1F2276F4C4C44205044422E1.
pdb-addr2line also doesn't have the frames from Vec
:
% pdb-addr2line -pCfi -e /Users/mstange/Downloads/xul.pdb 0x0000000004cb7f02
cert_storage::load_crlite_stash_from_reader_into_map(ref_mut$<dyn$<std::io::Read> >, std::collections::hash::map::HashMap<alloc::vec::Vec<u8,alloc::alloc::Global>,std::collections::hash::set::HashSet<alloc::vec::Vec<u8,alloc::alloc::Global>,std::collections::hash::map::RandomState>,std::collections::hash::map::RandomState>*) at /builds/worker/checkouts/gecko/security/manager/ssl/cert_storage/src/lib.rs:1193
The line is using the vec![]
macro. Do you know what that macro expands to? Maybe they copied the oom check right into the macro, though that seems unlikely.
It seems to expand to $crate::vec::from_elem($elem, $n)
Ok, so I would have expected the compiler to generate debug info that says that we're in that function. I'm not sure why it didn't.
Let's wait for this problem to show up again before we spend more time on it.