From: | HuangQi <huangqiyx(at)gmail(dot)com> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: gdb with postgres |
Date: | 2011-06-06 13:47:06 |
Message-ID: | BANLkTintv+e8j5qk4XjU8eMNngcp2JWyFQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
If I enter c, gdb will directly finish executing this process and current
query will finish. Furthermore, if I enter next query, gdb will not debug it
and stay in continue status.
On 6 June 2011 21:44, Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
> On Mon, Jun 6, 2011 at 3:43 AM, HuangQi <huangqiyx(at)gmail(dot)com> wrote:
> > Hi,
> > I was using gdb to debug postgres. In order to debug the backend of
> > running query, I start postgres first and use "select * from
> > pg_backend_pid()" to ask for backend pid. Then I start gdb in another
> bash
> > window with "gdb postgres" and attach the pid obtained above and set the
> > breakpoint. Then I run the query from the first window. However, the
> > debugging precess which is shown below is not going to the breakpoint. I
> > tried many different breakpoints, but it always start from the 305
> > client_read_ended().
> >
> > GNU gdb 6.6
> > Copyright (C) 2006 Free Software Foundation, Inc.
> > GDB is free software, covered by the GNU General Public License, and you
> are
> > welcome to change it and/or distribute copies of it under certain
> > conditions.
> > Type "show copying" to see the conditions.
> > There is absolutely no warranty for GDB. Type "show warranty" for
> details.
> > This GDB was configured as "sparc-sun-solaris2.10"...
> > (gdb) b qp_add_paths_to_joinrel
> > Breakpoint 1 at 0x1a6744: file joinpath.c, line 67.
> > (gdb) attach 23903
> > Attaching to program `/usrlocal/pgsql/bin/postgres', process 23903
> > Retry #1:
> > Retry #2:
> > Retry #3:
> > Retry #4:
> > [New LWP 1]
> > 0xff0cbaa4 in _rt_boot () from /usr/lib/ld.so.1
> > (gdb) n
> > Single stepping until exit from function _rt_boot,
> > which has no line number information.
> > secure_read (port=0x4a7760, ptr=0x455948, len=8192) at be-secure.c:305
> > 305 client_read_ended();
> > (gdb) n
> > pq_recvbuf () at pqcomm.c:767
> > 767 if (r < 0)
> > (gdb) n
> > 769 if (errno == EINTR)
> > (gdb) n
> > 782 if (r == 0)
> > (gdb) n
> > 788 return EOF;
> > (gdb) n
> > 791 PqRecvLength += r;
> > (gdb)
> > Any one know what is going wrong? BTW, as you can see, the system is
> > solaris.
>
> Perhaps you want "c" for "continue" rather than "n" for "next".
>
> --
> Robert Haas
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
--
Best Regards
Huang Qi Victor
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2011-06-06 13:55:15 | Re: gdb with postgres |
Previous Message | Robert Haas | 2011-06-06 13:44:50 | Re: gdb with postgres |