土卜皿 <pengcz.nwpu@gmail.com> writes:
> I am sorry, maybe I should make my question clearer, I only want to know,
> in 8.4.0 or newer version,
> whether I can debug posgres in the bare backend mode (in usingddd-postgres
> <http://www-inst.eecs.berkeley.edu/~cs186/fa04/usingddd.pdf>, he said that "
> There are two ways to debug postgres (a) in the interactive mode and (b) in
> the bare backend mode"
Yeah, that still works as well or poorly as it ever did, though the
startup process is a bit different: you need to say "postgres --single"
to launch a standalone backend.
But really, nobody does it that way anymore. There is no advantage to it,
unless maybe you're trying to debug a startup-time crash. The standalone
backend interface is very unpleasant to use compared to psql: no readline
command editing, no nice formatting of output, no tab completion or help,
etc etc. For debugging of normal query operation it's far better to fire
up a psql session and then gdb the connected backend process.
There's more info here:
https://wiki.postgresql.org/wiki/Developer_FAQ#gdb
and if gdb isn't giving you useful symbolic information, see
the setup tips here:
https://wiki.postgresql.org/wiki/Getting_a_stack_trace_of_a_running_PostgreSQL_backend_on_Linux/BSD
regards, tom lane