Program compiled with the new version of Rust crash on Win11

Old code can't be compiled with the new version of Rust.
When I try to compile my old code that used to work well, I get an error.

this is an inference error on crate `time` caused by an API change in Rust 1.80.0; update `time` to version `>=0.3.35` by calling `cargo update`

So I had to use cargo update -p time.Successfully compiled without warnings or errors.
But the program(debug and release) crash on win11 without any error message. Works fine on win10.

It's the same even with cargo update.

I tried to get a little bit of information with Procdump.The program crashed so fast that I couldn't enter the corresponding pid in the command.So I started this program with x64dbg and was able to find the pid. Detach and quickly execute the ProcDump command.

Got a little bit of information

[00:54:25] Exception: C0000005.ACCESS_VIOLATION
[00:54:25] Unhandled: C000041D

Use WinDbg to view dmp file

uiautomationcore!EventMap::AddEntry+0x84:
00007ff9`cdd6e254 488b4008        mov     rax,qword ptr [rax+8] ds:feeefeee`feeefef6=????????????????

I don't have unsafe in my code. I'm wondering how to determine which dependency or rust itself is causing the problem.
(I found the program I saved that I compiled in the past, and it works very well on win10 and win11.)

Does the new version compile with the previous version of Rust you had? You could then check if a particular version of that crate crashes and which one (if that's the only difference beside the Rust version). But is it not possible to simply launch that in an IDE or a debugger that would catch the error and the stack?

I don't use an IDE and I don't know anything about x64dbg debugging. I can only use some very simple features of x64dbg.

Couple of questions:

  • what version of the rust compiler was used to compile the previous versions?
  • is the time crate your only dependency for this project?
  • if not: can you list the rest of them as well?

Googling for similar issues brings up

FAILURE_BUCKET_ID:  INVALID_POINTER_READ_c0000005_uiautomationcore.dll!EventMap::AddEntry

Some nullptr (ignored previously, yet accessed now) could be hiding somewhere.

feeefeee is one of the magic numbers used by Microsoft used to detect use-after-free, which is likely the underlying cause of the issue here. It might only be used when compiling or running in debug mode. In that case, the previous version of the program could just happen not to overwrite the freed memory most of the time.

It could also be unrelated to the program and be a bug in accessibility software on the computer, which is what UI Automation is about.

2 Likes

I forgot. It was over two years ago.(2023.4)
I haven't recompiled it since, until recently when I wanted to use it on win11 and recompiled a new one in the meantime.

[dependencies]
eframe = "0.21.3"
passwords = "3.1.13"
rfd = "0.11.3"
anyhow = "1.0.70"
bson = "2.6.1"
clap = { version = "4.2.3", features = ["derive"] }
crc = "3.0.1"
serde = "1.0.160"
thiserror = "1.0.40"

[dev-dependencies]
assert_cmd = "0.11.0"
predicates = "1.0.0"
tempfile = "3.0.7"
walkdir = "2.2.7"

If you run your program under WinDbg, you should be able to get a stack trace. I made a small program crash on purpose (with unsafe code), and can do that like this:

  • In WinDbg, run the program with File → Launch Executable.
  • Click Go, and run the program until it crashes.
  • In the "Command" window, enter the command k and press Enter.

In my case, the gives me a nicely formatted stack trace:

dialog!core::ptr::write [inlined in dialog!dialog::command+0xde]:
00007ff7`09b42d1e 48c70011111111  mov     qword ptr [rax],11111111h ds:00000000`00090400=????????????????
0:000> k
 # Child-SP          RetAddr               Call Site
00 (Inline Function) --------`--------     dialog!core::ptr::write [C:\Users\carey\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs @ 1580] 
01 (Inline Function) --------`--------     dialog!core::ptr::mut_ptr::impl$0::write [C:\Users\carey\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mut_ptr.rs @ 1507] 
02 000000a3`496fcda0 00007ff7`09b43aa2     dialog!dialog::command+0xde [C:\Users\carey\Source\rust-windows-demos\src\bin\dialog\main.rs @ 109] 
03 000000a3`496fd150 00007ffa`50030ac8     dialog!dialog::dialog_func+0x6b2 [C:\Users\carey\Source\rust-windows-demos\src\bin\dialog\main.rs @ 91] 
04 000000a3`496fd580 00007ffa`50026c44     USER32!UserCallDlgProcCheckWow+0x198
05 000000a3`496fd670 00007ffa`50026b58     USER32!DefDlgProcWorker+0xc4
06 000000a3`496fd720 00007ffa`5002d159     USER32!DefDlgProcW+0x58
07 000000a3`496fd760 00007ffa`5002e293     USER32!UserCallWinProcCheckWow+0x359
08 000000a3`496fd8c0 00007ffa`5002d9be     USER32!SendMessageWorker+0x223
09 000000a3`496fd970 00007ffa`5002d882     USER32!SendMessageInternal+0x6e
0a 000000a3`496fd9b0 00007ffa`36dfb633     USER32!SendMessageW+0xf2
0b 000000a3`496fda00 00007ffa`36dfc158     comctl32!Edit_NotifyParent+0x4f
0c 000000a3`496fda30 00007ffa`36dfbc62     comctl32!Edit_ResetTextInfo+0xfc
0d 000000a3`496fda70 00007ffa`36e0235b     comctl32!Edit_SetEditText+0xa2
0e 000000a3`496fdab0 00007ffa`36dfedfe     comctl32!EditSL_Create+0xf3
0f 000000a3`496fdb90 00007ffa`36dfd7f1     comctl32!EditSL_WndProc+0x31e
10 000000a3`496fdc70 00007ffa`5002d159     comctl32!Edit_WndProc+0x101
11 000000a3`496fdd30 00007ffa`5002c74c     USER32!UserCallWinProcCheckWow+0x359
12 000000a3`496fde90 00007ffa`5004b88e     USER32!DispatchClientMessage+0x9c
13 000000a3`496fdef0 00007ffa`52285b24     USER32!__fnINLPCREATESTRUCT+0x8e
14 000000a3`496fdf50 00007ffa`4fd52084     ntdll!KiUserCallbackDispatcherContinue
15 000000a3`496fe078 00007ffa`50033c2a     win32u!NtUserCreateWindowEx+0x14
16 000000a3`496fe080 00007ffa`5002564a     USER32!VerNtUserCreateWindowEx+0x236
17 000000a3`496fe410 00007ffa`50024b37     USER32!InternalCreateDialog+0x97a
18 000000a3`496fe5f0 00007ffa`50024a98     USER32!CreateDialogIndirectParamAorW+0x57
19 000000a3`496fe640 00007ff7`09b45cba     USER32!CreateDialogIndirectParamW+0x18
1a 000000a3`496fe680 00007ff7`09b454f2     dialog!windows::Win32::UI::WindowsAndMessaging::CreateDialogIndirectParamW+0x1fa [C:\Users\carey\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\windows-0.61.1\src\Windows\Win32\UI\WindowsAndMessaging\mod.rs @ 332] 
1b 000000a3`496fe7d0 00007ff7`09b466ba     dialog!dialog::main::closure$0+0x122 [C:\Users\carey\Source\rust-windows-demos\src\bin\dialog\main.rs @ 36] 
1c 000000a3`496fe900 00007ff7`09b4180b     dialog!tracing::span::Span::in_scope<dialog::main::closure_env$0,enum2$<core::result::Result<windows::Win32::Foundation::HWND,windows_result::error::Error> > >+0x9a [C:\Users\carey\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\tracing-0.1.41\src\span.rs @ 1102] 
1d 000000a3`496fe990 00007ff7`09b452c3     dialog!dialog::main+0x32b [C:\Users\carey\Source\rust-windows-demos\src\bin\dialog\main.rs @ 35] 
1e 000000a3`496ff610 00007ff7`09b471d6     dialog!core::ops::function::FnOnce::call_once<enum2$<core::result::Result<std::process::ExitCode,windows_result::error::Error> > (*)(),tuple$<> >+0x13 [C:\Users\carey\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs @ 250] 
1f 000000a3`496ff650 00007ff7`09b45216     dialog!std::sys::backtrace::__rust_begin_short_backtrace<enum2$<core::result::Result<std::process::ExitCode,windows_result::error::Error> > (*)(),enum2$<core::result::Result<std::process::ExitCode,windows_result::error::Error> > >+0x16 [C:\Users\carey\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\backtrace.rs @ 152] 
20 000000a3`496ff690 00007ff7`09d8a2cc     dialog!std::rt::lang_start::closure$0<enum2$<core::result::Result<std::process::ExitCode,windows_result::error::Error> > >+0x16 [C:\Users\carey\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs @ 199] 
21 (Inline Function) --------`--------     dialog!std::rt::lang_start_internal::closure$0+0x9c [/rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\rt.rs @ 168] 
22 (Inline Function) --------`--------     dialog!std::panicking::try::do_call+0x9c [/rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\panicking.rs @ 589] 
23 (Inline Function) --------`--------     dialog!std::panicking::try+0x9c [/rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\panicking.rs @ 552] 
24 (Inline Function) --------`--------     dialog!std::panic::catch_unwind+0x9c [/rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\panic.rs @ 359] 
25 000000a3`496ff6e0 00007ff7`09b451fa     dialog!std::rt::lang_start_internal+0xbc [/rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\rt.rs @ 164] 
26 000000a3`496ff7a0 00007ff7`09b43bb9     dialog!std::rt::lang_start<enum2$<core::result::Result<std::process::ExitCode,windows_result::error::Error> > >+0x3a [C:\Users\carey\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs @ 204] 
27 000000a3`496ff800 00007ff7`09da8fb0     dialog!main+0x19
28 (Inline Function) --------`--------     dialog!invoke_main+0x22 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 78] 
29 000000a3`496ff830 00007ffa`51afe8d7     dialog!__scrt_common_main_seh+0x10c [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] 
2a 000000a3`496ff870 00007ffa`5215c34c     KERNEL32!BaseThreadInitThunk+0x17
2b 000000a3`496ff8a0 00000000`00000000     ntdll!RtlUserThreadStart+0x2c
3 Likes

That's the perfect opportunity to learn one. It's much easier with an IDE, but if you don't want to use one, you can indeed make do with WinDbg (on a debug build).

But it looks like undefined behaviour, and since it happens rather quickly, you could run it with Miri to detect any problem in case the deed occurs a little before the crash. It runs on nightly, so you'll have to run it with cargo +nightly miri run.

Given that the crash occurs in UI Automation, my guess would be that the problem is in eframe, egui or AccessKit, to do with FFI, which Miri unfortunately can’t really help with.

Very helpful. The path can be clicked to see the corresponding code.
The \~\ was replaced for privacy reasons.[1]
I'm much less confused. It's time for me to modify the code with new version of the dependencies.

 # Child-SP          RetAddr               Call Site
00 000000bc`6db39810 00007ffa`1108a1ad     uiautomationcore!EventMap::AddEntry+0x84
01 000000bc`6db39950 00007ff7`4af7ccc4     uiautomationcore!UiaRaiseAutomationEvent+0x2ad
02 000000bc`6db39a70 00007ff7`4af6eff6     cpm!windows::Windows::Win32::UI::Accessibility::UiaRaiseAutomationEvent<ref$<windows::Windows::Win32::UI::Accessibility::IRawElementProviderSimple> >+0x64 [\~\windows-0.42.0\src\Windows\Win32\UI\Accessibility\mod.rs @ 1267] 
03 000000bc`6db39af0 00007ff7`4aee1b02     cpm!accesskit_windows::adapter::QueuedEvents::raise+0x156 [~\accesskit_windows-0.12.0\src\adapter.rs @ 240] 
04 000000bc`6db39cb0 00007ff7`4aedd6be     cpm!accesskit_winit::platform_impl::platform::Adapter::update_if_active<egui_winit::impl$0::handle_platform_output::closure_env$0>+0x72 [\~\accesskit_winit-0.10.0\src\platform_impl\windows.rs @ 32] 
05 000000bc`6db39d20 00007ff7`4aee5c45     cpm!accesskit_winit::Adapter::update_if_active<egui_winit::impl$0::handle_platform_output::closure_env$0>+0xe [\~\accesskit_winit-0.10.0\src\lib.rs @ 133] 
06 000000bc`6db39d50 00007ff7`4ae58770     cpm!egui_winit::State::handle_platform_output+0x345 [~\egui-winit-0.21.1\src\lib.rs @ 652] 
07 000000bc`6db39fa0 00007ff7`4ae9c46e     cpm!eframe::native::epi_integration::EpiIntegration::handle_platform_output+0x20 [~\eframe-0.21.3\src\native\epi_integration.rs @ 503] 
08 000000bc`6db39fe0 00007ff7`4ae5d3ff     cpm!eframe::native::run::glow_integration::impl$2::paint+0x2ae [~\eframe-0.21.3\src\native\run.rs @ 792] 
09 000000bc`6db3a580 00007ff7`4aea1797     cpm!eframe::native::run::run_and_return::closure$0<eframe::native::run::glow_integration::GlowWinitApp>+0x12ff [~\eframe-0.21.3\src\native\run.rs @ 178] 
0a 000000bc`6db3b570 00007ff7`4ae7b855     cpm!winit::platform_impl::platform::event_loop::impl$3::run_return::closure$0<enum2$<eframe::native::run::UserEvent>,eframe::native::run::run_and_return::closure_env$0<eframe::native::run::glow_integration::GlowWinitApp> >+0x87 [\~\winit-0.28.7\src\platform_impl\windows\event_loop.rs @ 261] 
0b 000000bc`6db3b660 00007ff7`4ae848bd     cpm!alloc::boxed::impl$29::call_mut<tuple$<enum2$<winit::event::Event<enum2$<eframe::native::run::UserEvent> > >,ref_mut$<enum2$<winit::event_loop::ControlFlow> > >,dyn$<core::ops::function::FnMut<tuple$<enum2$<winit::event::Event<enum2$<eframe::native::run::UserEvent> > >,ref_mut$<enum2$<winit::event_loop::ControlFlow> > >,assoc$<Output,tuple$<> > > >,alloc::alloc::Global>+0x55 [\~\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\boxed.rs @ 1974] 
0c 000000bc`6db3b730 00007ff7`4ae71fa4     cpm!winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure$0<enum2$<eframe::native::run::UserEvent> >+0x2cd [\~\winit-0.28.7\src\platform_impl\windows\event_loop\runner.rs @ 250] 
0d 000000bc`6db3ba50 00007ff7`4ae68b0c     cpm!core::panic::unwind_safe::impl$25::call_once<tuple$<>,winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<enum2$<eframe::native::run::UserEvent> > >+0x24 [\~\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\panic\unwind_safe.rs @ 273] 
0e 000000bc`6db3bb20 00007ff7`4ae58bd3     cpm!std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<enum2$<eframe::native::run::UserEvent> > >,tuple$<> >+0x3c [\~\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs @ 591] 
0f 000000bc`6db3bc00 00007ff7`4ae53c5a     cpm!eframe::native::epi_integration::impl$0::update::closure$1+0x53
10 (Inline Function) --------`--------     cpm!std::panicking::try+0x50 [\~\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs @ 552] 
11 000000bc`6db3bc50 00007ff7`4ae8316f     cpm!std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<enum2$<eframe::native::run::UserEvent> > >,tuple$<> >+0x5a [\~\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs @ 359] 
12 000000bc`6db3bdd0 00007ff7`4ae845db     cpm!winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::run::UserEvent> >::catch_unwind<enum2$<eframe::native::run::UserEvent>,tuple$<>,winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<enum2$<eframe::native::run::UserEvent> > >+0xef [\~\winit-0.28.7\src\platform_impl\windows\event_loop\runner.rs @ 157] 
13 000000bc`6db3c020 00007ff7`4ae84c53     cpm!winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::run::UserEvent> >::call_event_handler<enum2$<eframe::native::run::UserEvent> >+0x3b [\~\winit-0.28.7\src\platform_impl\windows\event_loop\runner.rs @ 256] 
14 000000bc`6db3c0f0 00007ff7`4ae820a0     cpm!winit::platform_impl::platform::event_loop::runner::impl$3::dispatch_buffered_events::closure$0<enum2$<eframe::native::run::UserEvent> >+0x13 [\~\winit-0.28.7\src\platform_impl\windows\event_loop\runner.rs @ 266] 
15 000000bc`6db3c120 00007ff7`4ae84b80     cpm!enum2$<winit::platform_impl::platform::event_loop::runner::BufferedEvent<enum2$<eframe::native::run::UserEvent> > >::dispatch_event<enum2$<eframe::native::run::UserEvent>,winit::platform_impl::platform::event_loop::runner::impl$3::dispatch_buffered_events::closure_env$0<enum2$<eframe::native::run::UserEvent> > >+0x170 [\~\winit-0.28.7\src\platform_impl\windows\event_loop\runner.rs @ 449] 
16 000000bc`6db3c420 00007ff7`4ae840b5     cpm!winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::run::UserEvent> >::dispatch_buffered_events<enum2$<eframe::native::run::UserEvent> >+0xf0 [\~\winit-0.28.7\src\platform_impl\windows\event_loop\runner.rs @ 266] 
17 000000bc`6db3c590 00007ff7`4ae83635     cpm!winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::run::UserEvent> >::call_new_events<enum2$<eframe::native::run::UserEvent> >+0x245 [\~\winit-0.28.7\src\platform_impl\windows\event_loop\runner.rs @ 404] 
18 000000bc`6db3c7b0 00007ff7`4ae84f27     cpm!winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::run::UserEvent> >::move_state_to<enum2$<eframe::native::run::UserEvent> >+0x105 [\~\winit-0.28.7\src\platform_impl\windows\event_loop\runner.rs @ 312] 
19 000000bc`6db3cf00 00007ff7`4aea105a     cpm!winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::run::UserEvent> >::poll<enum2$<eframe::native::run::UserEvent> >+0x17 [\~\winit-0.28.7\src\platform_impl\windows\event_loop\runner.rs @ 207] 
1a 000000bc`6db3cf40 00007ff7`4ae8f7be     cpm!winit::platform_impl::platform::event_loop::EventLoop<enum2$<eframe::native::run::UserEvent> >::run_return<enum2$<eframe::native::run::UserEvent>,eframe::native::run::run_and_return::closure_env$0<eframe::native::run::glow_integration::GlowWinitApp> >+0x18a [\~\winit-0.28.7\src\platform_impl\windows\event_loop.rs @ 269] 
1b 000000bc`6db3d1c0 00007ff7`4ae5bc88     cpm!winit::platform::run_return::impl$0::run_return<enum2$<eframe::native::run::UserEvent>,eframe::native::run::run_and_return::closure_env$0<eframe::native::run::glow_integration::GlowWinitApp> >+0xe [\~\winit-0.28.7\src\platform\run_return.rs @ 52] 
1c 000000bc`6db3d1f0 00007ff7`4ae9d6d4     cpm!eframe::native::run::run_and_return<eframe::native::run::glow_integration::GlowWinitApp>+0x418 [~\eframe-0.21.3\src\native\run.rs @ 124] 
1d 000000bc`6db3dd70 00007ff7`4ae5b753     cpm!eframe::native::run::glow_integration::run_glow::closure$0+0x74 [~\eframe-0.21.3\src\native\run.rs @ 994] 
1e 000000bc`6db3e3d0 00007ff7`4ae8ec1c     cpm!eframe::native::run::with_event_loop::closure$0<enum2$<core::result::Result<tuple$<>,enum2$<eframe::Error> > >,eframe::native::run::glow_integration::run_glow::closure_env$0>+0x1a3 [~\eframe-0.21.3\src\native\run.rs @ 108] 
1f 000000bc`6db3e590 00007ff7`4ae8e613     cpm!std::thread::local::LocalKey<core::cell::RefCell<enum2$<core::option::Option<winit::event_loop::EventLoop<enum2$<eframe::native::run::UserEvent> > > > > >::try_with<core::cell::RefCell<enum2$<core::option::Option<winit::event_loop::EventLoop<enum2$<eframe::native::run::UserEvent> > > > >,eframe::native::run::with_event_loop::closure_env$0<enum2$<core::result::Result<tuple$<>,enum2$<eframe::Error> > >,eframe::native::run::glow_integration::run_glow::closure_env$0>,enum2$<core::result::Result<tuple$<>,enum2$<eframe::Error> > > >+0xdc [\~\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\thread\local.rs @ 311] 
20 000000bc`6db3e740 00007ff7`4ae5b5a0     cpm!std::thread::local::LocalKey<core::cell::RefCell<enum2$<core::option::Option<winit::event_loop::EventLoop<enum2$<eframe::native::run::UserEvent> > > > > >::with<core::cell::RefCell<enum2$<core::option::Option<winit::event_loop::EventLoop<enum2$<eframe::native::run::UserEvent> > > > >,eframe::native::run::with_event_loop::closure_env$0<enum2$<core::result::Result<tuple$<>,enum2$<eframe::Error> > >,eframe::native::run::glow_integration::run_glow::closure_env$0>,enum2$<core::result::Result<tuple$<>,enum2$<eframe::Error> > > >+0x23 [\~\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\thread\local.rs @ 275] 
21 000000bc`6db3e7f0 00007ff7`4ae9d461     cpm!eframe::native::run::with_event_loop<enum2$<core::result::Result<tuple$<>,enum2$<eframe::Error> > >,eframe::native::run::glow_integration::run_glow::closure_env$0>+0x70 [~\eframe-0.21.3\src\native\run.rs @ 101] 
22 000000bc`6db3e8d0 00007ff7`4ae5f4e9     cpm!eframe::native::run::glow_integration::run_glow+0x121 [~\eframe-0.21.3\src\native\run.rs @ 991] 
23 000000bc`6db3f110 00007ff7`4ac61b64     cpm!eframe::run_native+0x399 [~\eframe-0.21.3\src\lib.rs @ 201] 
24 000000bc`6db3f4b0 00007ff7`4ac613cb     cpm!cpm::main+0x224 [~\old\cpm\src\main.rs @ 11] 
25 000000bc`6db3f6f0 00007ff7`4ac6188e     cpm!core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >+0xb [\~\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs @ 250] 
26 (Inline Function) --------`--------     cpm!core::hint::black_box [\~\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\hint.rs @ 477] 
27 000000bc`6db3f730 00007ff7`4ac617d1     cpm!std::sys::backtrace::__rust_begin_short_backtrace<void (*)(),tuple$<> >+0xe [\~\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\backtrace.rs @ 155] 
28 000000bc`6db3f770 00007ff7`4b2217fc     cpm!std::rt::lang_start::closure$0<tuple$<> >+0x11 [\~\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs @ 199] 
29 (Inline Function) --------`--------     cpm!std::rt::lang_start_internal::closure$0+0x9c [/rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\rt.rs @ 168] 
2a (Inline Function) --------`--------     cpm!std::panicking::try::do_call+0x9c [/rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\panicking.rs @ 589] 
2b (Inline Function) --------`--------     cpm!std::panicking::try+0x9c [/rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\panicking.rs @ 552] 
2c (Inline Function) --------`--------     cpm!std::panic::catch_unwind+0x9c [/rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\panic.rs @ 359] 
2d 000000bc`6db3f7b0 00007ff7`4ac617ba     cpm!std::rt::lang_start_internal+0xbc [/rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\rt.rs @ 164] 
2e 000000bc`6db3f870 00007ff7`4ac61c39     cpm!std::rt::lang_start<tuple$<> >+0x3a [\~\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs @ 204] 
2f 000000bc`6db3f8d0 00007ff7`4b24fae4     cpm!main+0x19
30 (Inline Function) --------`--------     cpm!invoke_main+0x22 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 78] 
31 000000bc`6db3f900 00007ffa`3e2ee8d7     cpm!__scrt_common_main_seh+0x10c [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] 
32 000000bc`6db3f940 00007ffa`3fefc5dc     KERNEL32!BaseThreadInitThunk+0x17
33 000000bc`6db3f970 00000000`00000000     ntdll!RtlUserThreadStart+0x2c

  1. Why does this path D:\a\_work\1\s exist. I don't even have a D drive, only C and E. ↩︎

The D:\a\ paths are probably from Microsoft’s CI server which built msvcrt.lib. A little bit of code gets linked into every executable to set up important things for the C runtime, like floating point flags and structured exception handling, before doing anything else.