.NET uses the basic structure of structured Windows exception handling. There is a big difference in the way x64 exceptions are handled. It uses the address tables generated by the compiler to find the appropriate exception filter. x86 uses a linked list of function pointers, much easier to implement by the compiler.
One of the reasons the x64 method was changed was due to security reasons, the virus code managed to inject itself, correcting the linked list and throwing an exception, allowing it to carry its payload. There were counter measures against this in XP SP1 at the cost of efficiency. Reorganizing x64 avoids this cost.
Well, you can see where this heading is. You must debug code with the target platform installed on x86. It also allows Edit + Continue, a very valuable debugging tool. This is the default value for VS2010 projects. Just go to AnyCPU to build Release.
source share