> Chris <chris(at)bitmead(dot)com> writes:
> > How do you run postgres under gdb?
> If you are running a standalone backend, you just fire it up.
> For normal use under a postmaster, the easiest thing I've found is to
> start psql (or your favorite client) in one window, start gdb on the
> postgres executable in another, and then "attach" to the already-started
> backend process. (Use "ps" to discover the backend's PID.) You must
> run gdb as postgres, of course, but the client process can belong to
> It gets a little tricky if you are trying to debug part of the
> backend startup sequence. We have a kluge for that: start psql
> with PGOPTIONS="-W n". That causes the backend to sleep() for n
> seconds fairly early in its startup, giving you time to attach to it
> before anything really interesting happens.
> In theory you can debug one backend in a live production system
> this way, but I wouldn't recommend doing that except in dire need.
> If you use gdb to stop the backend while it is holding a lock, you'll
> block other backends too --- and holding a spinlock is even worse,
> because those other backends will time out after a minute or so.
> Better to use a playpen installation.
> (Hey Bruce, shouldn't this info be in FAQ_DEV?)
Yes, let me add it.
Bruce Momjian | http://www.op.net/~candle
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
In response to
pgsql-hackers by date
|Next:||From: Adriaan Joubert||Date: 2000-01-28 17:43:40|
|Subject: Bit strings|
|Previous:||From: Jan Wieck||Date: 2000-01-28 17:26:16|
|Subject: Re: [HACKERS] Inheritance, referential integrity and other constraints|