how to use eclipse when debugging postgreSQL backend

Started by 노홍찬over 16 years ago3 messages
#1노홍찬
fallsmal@cs.yonsei.ac.kr

Hello hackers,

I really appreciate Mr. Cecchet’s effort to establish the wiki page
(working_with_eclipse, http://archives.postgresql.org/pgsql-hackers/2008-
10/msg00312.php).

I set up my PostgreSQL development environment with Eclipse, following the
page’s instructions.

However, I’m stuck to the situation that I cannot debug the modified
backend source of PostgreSQL

since the gdb incorporated with Eclipse doesn’t support the debugging of
the forked child processes.

When I start debugging process by using the project default, it can only
debug the postmaster process,

since the postmaster process forks child processes each of which is
actually postgres backend process responsible for the response to each
client process (psql).

What I’m trying to debug is the storage-related part of the backend
source, so the gdb should be able to access the forked processes.

I tried several ways like making the default option of gdb to be ‘set
follow-fork-mode child’, but those tries didn’t work.

For sure, there is another option, giving up using eclipse when debugging
and using the console-mode gdb,

but I prefer using graphical development environment and that’s the reason
why I chose to use eclipse as a default development tool in the very first
start.

(This try might be regarded as silly though, I might be supposed to get
familiar to console development environment,

but if someone went through the same situation before and he or she can
help me, it will be very time-saving)

If someone can let me know how to set Eclipse or several steps needed to
access the forked process while Elipse debugging,

It will be very much helpful to me.

Thank you for reading this

- Best Regards
Hongchan
( <mailto:fallsmal@cs.yonsei.ac.kr> fallsmal@cs.yonsei.ac.kr, (02)2123-
7757) -

#2Rajanikant Chirmade
rajanikant.chirmade@enterprisedb.com
In reply to: 노홍찬 (#1)
Re: how to use eclipse when debugging postgreSQL backend

Hello Hongchan,

You need go to through following steps :

1. Debug Perspective => Run => Debug Configuration
2. On left side of menu you can see "C/C++ Attach to Application"
3. Right click on "C/C++ Attach to Application" and create new debug
configuration,
4. Set Project, Build Configuration as "Use Active" , C/C++ Application
as "postgres" executable path,
5. Start postmaster & one instant of postgresql client (for creating one
new postgres),
6. Click on Debug which will show current process list,
7. Select forked "postgres" process you want to debug
8. Put breakpoint in your function,

this is working for me.

Hopefully this helps you.

Thanks & Regards,
Rajanikant Chirmade.

2009/9/28 노홍찬 <fallsmal@cs.yonsei.ac.kr>

Show quoted text

Hello hackers,

I really appreciate Mr. Cecchet’s effort to establish the wiki page
(working_with_eclipse,
http://archives.postgresql.org/pgsql-hackers/2008-10/msg00312.php).

I set up my PostgreSQL development environment with Eclipse, following the
page’s instructions.

However, I’m stuck to thesituation that I cannot debug the modified backend
source of PostgreSQL

since the gdb incorporated with Eclipse doesn’t support the debugging of
the forked child processes.

When I start debugging process by using the project default, it can only
debug the postmaster process,

since the postmaster process forks child processes each of which is
actually postgres backend process responsible for the response to each
client process (psql).

What I’m trying to debug is the storage-related part of the backend source,
so the gdb should be able to access the forked processes.

I tried several ways like making the default option of gdb to be ‘set
follow-fork-mode child’, but those tries didn’t work.

For sure, there is another option, giving up using eclipse when debugging
and using the console-mode gdb,

but I prefer using graphical development environment and that’s the reason
why I chose to use eclipse as a default development tool in the very first
start.

(This try might be regarded as silly though, I might be supposed to get
familiar to console development environment,

but if someone went through the same situation before and he or she can
help me, it will be very time-saving)

If someone can let me know how to set Eclipse or several steps needed to
access the forked process while Elipse debugging,

It will be very much helpful to me.

Thank you for reading this

*- Best Regards
Hongchan
(fallsmal@cs.yonsei.ac.kr, (02)2123-7757) -*

#3Greg Smith
gsmith@gregsmith.com
In reply to: Rajanikant Chirmade (#2)
Re: how to use eclipse when debugging postgreSQL backend

This whole discussion looked helpful to save, I put a summary of the issue
and the suggested solution at
https://wiki.postgresql.org/wiki/Working_with_Eclipse#Debugging_with_child_processes
so nobody has to reinvent this.

--
* Greg Smith gsmith@gregsmith.com http://www.gregsmith.com Baltimore, MD