Re: [HACKERS] gdb with postgres

2011-06-07 Thread HuangQi
On 6 June 2011 21:57, Kevin Grittner kevin.gritt...@wicourts.gov wrote:

 HuangQi huangq...@gmail.com wrote:

  (gdb) b qp_add_paths_to_joinrel
  Breakpoint 1 at 0x1a6744: file joinpath.c, line 67.
  (gdb) attach 23903

  If I enter c, gdb will directly finish executing this process and
  current query will finish.

 Are you absolutely sure that running your query will result in a
 call to this function?

 -Kevin



Thanks guys for your idea. I found the solution. Because after made some
change in postgres and make them, I didn't stop the server first. Now I stop
it and start after reinstall, then using gdb is just fine. Thanks for your
ideas.

-- 
Best Regards
Huang Qi Victor


[HACKERS] gdb with postgres

2011-06-06 Thread HuangQi
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.

-- 
Best Regards
Huang Qi Victor


Re: [HACKERS] gdb with postgres

2011-06-06 Thread Pavan Deolasee
On Mon, Jun 6, 2011 at 1:13 PM, HuangQi huangq...@gmail.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().


Please compile with -O0 -g flags to see all the debug symbols.

CFLAGS=-O0 -g ./configure --enable-debug

Thanks,
Pavan

-- 
Pavan Deolasee
EnterpriseDB     http://www.enterprisedb.com

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] gdb with postgres

2011-06-06 Thread HuangQi
Sorry, but recompile with this flag still doesn't work.

On 6 June 2011 15:46, Pavan Deolasee pavan.deola...@gmail.com wrote:

 On Mon, Jun 6, 2011 at 1:13 PM, HuangQi huangq...@gmail.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().
 

 Please compile with -O0 -g flags to see all the debug symbols.

 CFLAGS=-O0 -g ./configure --enable-debug

 Thanks,
 Pavan

 --
 Pavan Deolasee
 EnterpriseDB http://www.enterprisedb.com




-- 
Best Regards
Huang Qi Victor


Re: [HACKERS] gdb with postgres

2011-06-06 Thread Robert Haas
On Mon, Jun 6, 2011 at 3:43 AM, HuangQi huangq...@gmail.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

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] gdb with postgres

2011-06-06 Thread HuangQi
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 robertmh...@gmail.com wrote:

 On Mon, Jun 6, 2011 at 3:43 AM, HuangQi huangq...@gmail.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


Re: [HACKERS] gdb with postgres

2011-06-06 Thread Robert Haas
On Mon, Jun 6, 2011 at 9:47 AM, HuangQi huangq...@gmail.com wrote:
 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.

Hmm, that must mean your breakpoint isn't properly set.

Instead of doing gdb postgres and then using attach, try just doing
gdb -p PIDNAME, then set your breakpoint, then continue.  That's how
I've always done it, anyway...

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] gdb with postgres

2011-06-06 Thread Kevin Grittner
HuangQi huangq...@gmail.com wrote:
 
 (gdb) b qp_add_paths_to_joinrel
 Breakpoint 1 at 0x1a6744: file joinpath.c, line 67.
 (gdb) attach 23903
 
 If I enter c, gdb will directly finish executing this process and
 current query will finish.
 
Are you absolutely sure that running your query will result in a
call to this function?
 
-Kevin

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers