OK, I found it. The culprit wasn't hard to guess - it's been a
problem before.
Which package screws up you c indentation settings without so much as
asking you? It look like it's the same one that's messing up gdb.
It seems to be jre.[1]
Loading xemacs (not vanilla) and running gdb is fine. Visit a .java
file, then running gdb is messed up.
Footnotes:
[1] I'm not absolutely certain that it's jre because I have only
tried this experiment once. To be certain I'd really need more
experiments, but it looks like there's a high probability that jre is
the culprit.