Retail debugging technique — #pragma optimize

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 —

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(push)

#pragma warning(disable:4748) // Disable warning about /GS being disabled due to optimizations being disabled

#pragma optimize(“”, off)

HRESULT MyClass::MyFunction()



#pragma optimize(“”, on)

#pragma warning(pop)


Comments (1)

  1. Gooey Bugs says:

    Introduction This FAQ can be used to narrow down the problems associated with debugging any type of solution