Thread: how to use eclipse when debugging postgreSQL backend

how to use eclipse when debugging postgreSQL backend

From
노홍찬
Date:
<div class="Section1"><p class="MsoNormal">Hello hackers,<p class="MsoNormal"> <p class="MsoNormal"> <p
class="MsoNormal">Ireally appreciate Mr. Cecchet’s effort to establish the wiki page (working_with_eclipse,
http://archives.postgresql.org/pgsql-hackers/2008-10/msg00312.php).<pclass="MsoNormal"> <p class="MsoNormal">I set up
myPostgreSQL development environment with Eclipse, following the page’s instructions.<p class="MsoNormal"> <p
class="MsoNormal">However,I’m stuck to the situation that I cannot debug the modified backend source of PostgreSQL <p
class="MsoNormal"> <pclass="MsoNormal">since the gdb incorporated with Eclipse doesn’t support the debugging of the
forkedchild processes.<p class="MsoNormal"> <p class="MsoNormal"> <p class="MsoNormal">When I start debugging process
byusing the project default, it can only debug the postmaster process,<p class="MsoNormal"> <p class="MsoNormal">since
thepostmaster process forks child processes each of which is actually postgres backend process responsible for the
responseto each client process (psql).<p class="MsoNormal"> <p class="MsoNormal">What I’m trying to debug is the
storage-relatedpart of the backend source, so the gdb should be able to access the forked processes.<p
class="MsoNormal"> <pclass="MsoNormal">I tried several ways like making the default option of gdb to be ‘set
follow-fork-modechild’, but those tries didn’t work.<p class="MsoNormal"> <p class="MsoNormal">For sure, there is
anotheroption, giving up using eclipse when debugging and using the console-mode gdb, <p class="MsoNormal"> <p
class="MsoNormal">butI prefer using graphical development environment and that’s the reason why I chose to use eclipse
asa default development tool in the very first start.<p class="MsoNormal"> <p class="MsoNormal">(This try might be
regardedas silly though, I might be supposed to get familiar to console development environment,<p
class="MsoNormal"> <pclass="MsoNormal">but if someone went through the same situation before and he or she can help me,
itwill be very time-saving)<p class="MsoNormal"> <p class="MsoNormal"> <p class="MsoNormal">If someone can let me know
howto set Eclipse or several steps needed to access the forked process while Elipse debugging, <p class="MsoNormal"> <p
class="MsoNormal">Itwill be very much helpful to me.<p class="MsoNormal"> <p class="MsoNormal">Thank you for reading
this<pclass="MsoNormal"> <p class="MsoNormal"> <p class="MsoNormal"
style="text-autospace:none;word-break:break-all"><b><spanstyle="font-size:9.0pt;font-family:"맑은 고딕";color:#1F497D">-
BestRegards<br />   Hongchan<br />   (<a href="mailto:fallsmal@cs.yonsei.ac.kr"><span
style="color:blue">fallsmal@cs.yonsei.ac.kr</span></a>,(02)2123-7757) -</span></b><span
style="font-size:9.0pt;font-family:"맑은고딕""></span><p class="MsoNormal"><span style="font-size:9.0pt"> </span><p
class="MsoNormal"> </div>

Re: how to use eclipse when debugging postgreSQL backend

From
Rajanikant Chirmade
Date:
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>

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) -

 

 


Re: how to use eclipse when debugging postgreSQL backend

From
Greg Smith
Date:
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