"Nigel J. Andrews" <nandrews@investsystems.co.uk> writes:
> Attaching the debugger to the backend process I can't set a break
> point on my function, it says 'Function "blah" not defined' and when
> it segments somewhere under SPI_execp called from my function the
> stack trace has all the postgres symbols but just a '??' at the place
> my function is obviously sitting.
You won't be able to set a breakpoint in the function if its shared
library hasn't been loaded into the process yet. I'd suggest something
like
<start fresh session>
psql=> LOAD 'libraryname';
<attach to backend with gdb>
gdb> b myfunc
gdb> cont
psql=> SELECT myfunc();
If gdb still claims not to know the function with this approach, you
probably also need to issue a "sharedlibrary" command to gdb to force
it to absorb symbol definitions from the shlib. I think on most
platforms the above sequence will work without that, though.
regards, tom lane