Thread: How to Run postgres inside gdb for debugging

How to Run postgres inside gdb for debugging

From
"Amit Khare"
Date:
Hi All,

Can any one help me running postgres inside gdb for debugging ?

Thanks and Regards
Amit Khare



How to Run postgres inside gdb for debugging

From
Lee Kindness
Date:
Amit Khare writes:
 > Can any one help me running postgres inside gdb for debugging ?

The short answer is you need to tell gdb to connect to the backend
'postmaster' process which has been started for your connection - you
should able to work out its pid using ps (or more likely a simple list
in your debugger frontend).

The problem is you'll need to do this very fast - this is why postgres
has a '-W' option to tell the process to wait a defined time before
really starting up - giving you time to connect. See:

 http://www.geocrawler.com/archives/3/10/1999/4/0/1649841/

Lee.

Re: How to Run postgres inside gdb for debugging

From
Tom Lane
Date:
Lee Kindness <lkindness@csl.co.uk> writes:
> The problem is you'll need to do this very fast - this is why postgres
> has a '-W' option to tell the process to wait a defined time before
> really starting up - giving you time to connect. See:

>  http://www.geocrawler.com/archives/3/10/1999/4/0/1649841/

It's not necessary to use -W unless you are trying to debug something
that happens during the backend startup process.  Even then, I wouldn't
make it a postmaster parameter, because that causes *all* started
backends to delay.  Instead say export PGOPTIONS="-W n" on the client
side before you start psql, so the delay only applies to your backend
under test.  See

http://archives.postgresql.org/pgsql-hackers/2000-01/msg01463.php

(Bruce said he was going to put that info into FAQ_DEV, but he never
did...)

            regards, tom lane

Re: How to Run postgres inside gdb for debugging

From
Bruce Momjian
Date:
Tom Lane wrote:
> Lee Kindness <lkindness@csl.co.uk> writes:
> > The problem is you'll need to do this very fast - this is why postgres
> > has a '-W' option to tell the process to wait a defined time before
> > really starting up - giving you time to connect. See:
>
> >  http://www.geocrawler.com/archives/3/10/1999/4/0/1649841/
>
> It's not necessary to use -W unless you are trying to debug something
> that happens during the backend startup process.  Even then, I wouldn't
> make it a postmaster parameter, because that causes *all* started
> backends to delay.  Instead say export PGOPTIONS="-W n" on the client
> side before you start psql, so the delay only applies to your backend
> under test.  See
>
> http://archives.postgresql.org/pgsql-hackers/2000-01/msg01463.php
>
> (Bruce said he was going to put that info into FAQ_DEV, but he never
> did...)

It is in the main FAQ already.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026