Corné van Driel

View Original

How Fault Code and Offset Work (Application Crash)

How to search for solutions online

Why this article?

Since publishing a solution for the Photoshop Crash at Startup, we seen a lot of traffic to this site looking for solutions to non-related issues.

Why do I say that?

Initially, before the issue was resolved by Adobe, there was a large number of comments that stated the solution worked, and it did at the time.

However, since then the issue was resolved, and this fix is no longer applicable, since this specific issue no longer exists.

The number of comments praising success have dropped off and a new set of, "this didn't help" comments started to appear.

Why are people trying this solution if it won't work?

Unfortunately error messages reported by software when they are unexpected and not explicitly handled, are cryptic. They do not help the use find a solution, but point a techie in the right direction to try and find a possible solution.

Get the point...

So, if we look at the error messages that Photoshop is displaying, there are a few very important things that you need to take note of

  1. Exception Code (or fault code, exit code)

  2. Offset

  3. Faulting Module (Module)

“Faulting application name: Photoshop.exe, version: 16.0.0.88, time stamp: 0x55681d39
Faulting module name: Photoshop.exe, version: 16.0.0.88, time stamp: 0x55681d39
Exception code: 0xc0000005
Fault offset: 0x000000000385514d

Faulting process id: 0x12dc
Faulting application start time: 0x01d0adb53d9bc00d
Faulting application path: C:\Program Files\Adobe\Adobe Photoshop CC 2015\Photoshop.exe
Faulting module path: C:\Program Files\Adobe\Adobe Photoshop CC 2015\Photoshop.exe
Report Id: aeb52b5c-ecce-41b2-8bee-3d93d878c50c
Faulting package full name: 
Faulting package-relative application ID: ”

You need to match those to the solutions you are trying to resolve your problem.

Huh?

Ok, so the faulting module is the compiled object (program, library, dll, assembly) in which the faulting code is held. This could be something other than the program that is failing. And helps you pinpoint something concrete to "Google".

Then, the fault code or exception code is the specific issue that is occurring. Thing like access denied, general page fault, not found etc...

These codes may be generic and generated by windows, or they may be framework or application specific, so they aren't as concrete as the faulting module, but they provide a clue to the actual underlying problems.

Finally, the offset tells us exactly where in the compiled program, assembly, dll the error occurs.

If we look at this code (the context is not important here), this gets "packed" into a smaller compiled unit (that is usually not human readable). The lines of code here will map to an offset in the resultant module.

So, line 1 will map to offset 0x000000 (the first address) in the module. Line 100 will map to offset 0x000064 (the 100th place in the assembly, but stated in Hexadecimal). This is the least specific of the items, since it depends on your system architecture and versions of the assemblies you have.

Line one of the code above on a 32bit machine might map to 0x001000 and 0x000400 on a 64bit machine. They might also move around from one module or assembly version to another as more functions are added, removed or optimised.

Wrapping it up

So lets put this together, when you search for a solution to a problem, you would do it as follows:

Application that Crashes + Application Version + Module that Crashes + Exception Code + Offset + Operating System

For the above issue, we'd look for Photoshop CC2015 Photoshop 0xC0000005 0x000000000385514d Windows 10 64Bit

As you see, this gives us a very specific set of pages to look at for possible solutions, that are directly related the the specific issue we are experiencing.

 Finally

I really hope this helps you find a solution to your problem. Unfortunately I do not have the time to look at every new Photoshop (or other) issues that I am not personally experiencing.

Thanks,

Corne