I browsed with iexplore and it crashed with the message
C000041D
i.e.
Unhandled exception at 0x7149B7C0 in iexplore.exe: 0xC000041D: An unhandled exception was encountered during a user callback.
AFAIK 0x means hex code, the 714...is the program counter and the C00...is the error code. What can I do to investigate this bug? I got Visual Studio running that has caught the program.
I found that
0xC000041d = STATUS_FATAL_USER_CALLBACK_EXCEPTION
What happens appears to be that the Application exits with abnormal code 0xc000041d due to early thread created by app.
Click to read more and see source..
0xC000041d
is a NTSTATUS code constant defined in Microsoft's ntstatus.h header file:
The definition name (MessageId
) is STATUS_FATAL_USER_CALLBACK_EXCEPTION
and its description is:
"An unhandled exception was encountered during a user callback."
NTSTATUS codes are typically used when communicating system information, e.g. between the Windows system and device drivers and sometimes between Windows and applications:
The meaning of the NTSTATUS code can also be looked up using the Microsoft Error Lookup Tool:
As the description suggests, Windows uses this specific NTSTATUS code when it encounters an exception (an abnormal condition) while calling a user-mode (https://www.tutorialspoint.com/User-Mode-vs-Kernel-Mode) callback function (https://en.wikipedia.org/wiki/Callback_(computer_programming)).
There are many situations that can generate this message. Therefore, searching the internet on solely the NTSTATUS code 0xC000041d
will possibly yield unrelated results. More relevant results might show up when also including the exact file name of the process (in this case iexplore.exe), the faulty module (see below) and/or maybe even the exact memory address (in this case 0x7149B7C0
).
Searching on the complete memory address can be a bit tricky because of slightly different compilations/build versions of the program, varying execution models (e.g., 32-bit vs 64-bit versions of Windows) and because the modules (.dll, .exe, .sys files etc. that together constitute the executing program code) are loaded at varying base addresses. Matching only the last four characters B7C0
of the address might be enough to indicate a related issue.
In order to actually debug the issue, Visual Studio can be used to view the Call Stack of the thread that is causing the exception:
https://stackoverflow.com/questions/945193/how-do-i-find-the-stack-trace-in-visual-studio
The call stack shows the different modules and methods in these modules that were calling each other at the moment the exception occurred. The module names can give an indication of what the program was doing when the issue happened.
If symbols (https://devblogs.microsoft.com/devops/understanding-symbol-files-and-visual-studios-symbol-settings/) are available for the module(s) that are causing the issue - and maybe even source code files of these modules - debugging becomes easier.
User contributions licensed under CC BY-SA 3.0