Retail debugging is one of those things that is both painful and necessary. To avoid repeating myself, I will just point to my old blog entry on this subject — http://blogs.msdn.com/greggm/archive/2004/12/15/315673.aspx.
I was doing some retail debugging today, and realized that I forgot to mention one good technique for solving retail only bugs – disable optimizations for the interesting code. Lots of bugs go away when everything is compiled /Od, but often you can disable optimizations in a function or two without destroying your repro.
#pragma warning(disable:4748) // Disable warning about /GS being disabled due to optimizations being disabled
#pragma optimize(“”, off)
#pragma optimize(“”, on)