"I'm on Solaris, and gdb says it doesn't know about some of my local symbols. Help!"
This problem was introduced in gcc 2.7.2, I believe; debug symbols for locals that aren't declared at the beginning of a block come out in the wrong order, and gdb can't find such symbols.
There are several patches floating around to correct this problem. It is, however, fixed in gcc-2.7.3, which should be available very shortly (it may already be available by the time you read this).