What is the difference between the following error messages?

  1. The instruction at "<address>" referenced memory at "<address>". The memory could not be "read"/"written".

  2. <application name> has stopped working (assuming an access violation occurred; this message is used for any other program crash as well)

In both cases, the program has performed an invalid memory access (access violation, aka segmentation fault). What determines the exact error message displayed?


  • The former error message ends with Click on OK to terminate the program. If a debugger (e.g. Visual Studio) is installed, there may be a Cancel button with the words Click on CANCEL to debug the program appended to the message. Another error message, which ends with the similar Click on OK to terminate theapplication, is The application failed to initialize properly.

  • I suspect these messages are generated by some runtime library, bypassing the normal Windows crash handler. Any idea when or why these error messages would appear in place of the <application name> has stopped working message?


You must log in to answer this question.

Browse other questions tagged .