Quick Answer
Ignore it. STATUS_WX86_UNSIMULATE (0X4000001C) is an informational status code used internally by the Win32 x86 emulation subsystem (WOW64) on ARM64 Windows. It does not indicate an error or crash — just that the emulator temporarily exited simulation mode. You only need to care if you're writing low-level emulation debugging tools.
What's Actually Happening Here
Windows on ARM (WoA) runs 32-bit x86 applications through a software emulator called WOW64. When the emulator needs to perform a native ARM operation — like handling a system call or a hardware interrupt — it "unsimulates" the x86 code and switches to native execution. The kernel alerts debuggers with STATUS_WX86_UNSIMULATE so they don't get confused by the architecture switch.
Real-world triggers: you'll see 0X4000001C if you attach a debugger like WinDbg or Visual Studio to a 32-bit x86 process running on an ARM64 machine. The debugger catches this as a debug event. It's totally normal. On x64 or x86 hardware, you'll never see this code — it's ARM64-specific.
Fix Steps (Handling the Status Code)
- Determine if you're on ARM64 hardware — Open Settings > System > About. Check "System type." If it says "ARM-based processor," you're in the right context. If not, something else is generating this code (unlikely, but possible if you use an emulator like QEMU).
- If you're a regular user running an app — do nothing. The app works fine. The status code never shows up unless a debugger is attached. Your machine is functioning correctly.
- If you're a developer in Visual Studio — go to Debug > Windows > Exception Settings. Search for
0x4000001corSTATUS_WX86_UNSIMULATE. Uncheck the box next to it. This tells VS not to break on this event.
Exception code: 0x4000001c Status: STATUS_WX86_UNSIMULATE Action: Uncheck 'Thrown' - If you're using WinDbg — execute
sxd wx86to set the debugger to "output only" mode for this code. Or usesxi wx86to ignore it completely.
0:000> sxi wx86 - Verify the fix — relaunch your debugger and run the app. The breakpoint on this event should no longer pop up. Your debugging session stays clean.
Alternative Fixes If the Main One Fails
If unchecking the exception in VS doesn't stick, you're probably on an older version. On Visual Studio 2019 and earlier, the exception list may not show this code by default. Add it manually:
- In Exception Settings, click the "Add" button (or right-click and select "Add Exception").
- Paste
0x4000001cinto the code field. - Name it
WX86 Unsimulate(optional). - Set both "Thrown" and "User-unhandled" to unchecked.
Another approach: use the .ignore command in WinDbg if sxi doesn't work on your build — rare, but happens on older WinDbg versions. You can also filter via conditional breakpoints, but that's overkill.
Prevention Tip
The only way to never see 0X4000001C is to not debug 32-bit x86 processes on ARM64. If you're building software for ARM64 Windows, compile your debugging tools as native ARM64 binaries — they won't go through WOW64 and won't trigger this status code. For example, build your WinDbg extension for ARM64, not x86. For Visual Studio, use the ARM64 build of the debugger if available.
Bottom line: this is a feature of the emulator, not a bug. Treat it like a speed bump sign, not a breakdown. Uncheck it in your debugger once and move on.