At first I thought it was something clobbering the stack, but I can correctly retrieve the stack from gdb console (I've noted the requests from me as opposed to what CDT does automagically. Also, some names have been altered as it's proprietary code):

However, the breakpoint is not displayed in the 'breakpoints' window, and the function variables are not shown in the 'Variables' window (when execution is suspended at the breakpoint). These both have no entries in them. The Debug window shows project->gdbserver (suspended)->thread [1] and stops there. It doesn't give the function name, and the associated line in foo() (where we double clicked the breakpoint) is not highlighted.

I can correctly retrieve the stack, breakpoints and variables directly from gdb using:

Seeing as GDB knows about this all correctly, I'm leaning towards the link between gdb and eclipse?

I think I have all my source files included properly, both in the main Eclipse project and according to the GDB trace, but they are spread out over multiple static library generating Eclipse projects, which adds an interesting twist. Could this explain breakpoints / variables / stack trace not showing up?