It was suggested to me to try -g8 for debugging some optimized code (xlC compiler, linuxppcle platform). Turns out that there is a whole set of -gN options with the xlC compiler that allow various levels of debug instrumentation.
For the optimization bug that I was debugging, -g8 made the problem go away, but with -g5 I was able to break at the nearest case: block and determine that the data in the variables was good coming into that case statement. Since what appears to come out of that case statement is bad, this isolates the problem significantly.