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.
carey
May 30, 2025, 8:25am
5
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"
carey
May 30, 2025, 9:01am
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
.
carey
May 30, 2025, 12:09pm
9
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.
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
carey
May 30, 2025, 9:38pm
11
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.