debuging postgres

Started by Gaetano Mendolaover 21 years ago6 messages
#1Gaetano Mendola
mendola@bigfoot.com

Hi all,
in order to debug "step by step" the postmaster,
just to understand better the code, is it enough
to compile it after having exported:

CFLAGS='-O0 -g' ?

do you have any hint and/or tips ?

BTW what do you use for this task ?

Regards
Gaetano Mendola

#2Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Gaetano Mendola (#1)
Re: debuging postgres

in order to debug "step by step" the postmaster,
just to understand better the code, is it enough
to compile it after having exported:

CFLAGS='-O0 -g' ?

do you have any hint and/or tips ?

BTW what do you use for this task ?

./configure --enable-debug

Chris

#3Gaetano Mendola
mendola@bigfoot.com
In reply to: Christopher Kings-Lynne (#2)
Re: debuging postgres

Christopher Kings-Lynne wrote:

in order to debug "step by step" the postmaster,
just to understand better the code, is it enough
to compile it after having exported:

CFLAGS='-O0 -g' ?

do you have any hint and/or tips ?

BTW what do you use for this task ?

./configure --enable-debug

Is this enough? I'm seeing that with --enable-debug only the
option -g is passed to the compiler and the option -O2 is
still there, is it not better compile with -O0 if you are
going to debug it?

Regards
Gaetano Mendola

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Gaetano Mendola (#3)
Re: debuging postgres

Gaetano Mendola <mendola@bigfoot.com> writes:

Christopher Kings-Lynne wrote:

./configure --enable-debug

Is this enough? I'm seeing that with --enable-debug only the
option -g is passed to the compiler and the option -O2 is
still there, is it not better compile with -O0 if you are
going to debug it?

If you want to single-step through the code a lot, then -O0 is good.
But are you really gonna do that so much? I do most of my tracing
at the level of function calls.

I tend to use -O1 as a compromise setting --- the code isn't totally
scrambled but it doesn't run like a dog either. (Also, for development
purposes, -O0 is evil because it disables certain useful warnings in
gcc.)

regards, tom lane

#5Gaetano Mendola
mendola@bigfoot.com
In reply to: Tom Lane (#4)
Re: debuging postgres

Tom Lane wrote:

Gaetano Mendola <mendola@bigfoot.com> writes:

Christopher Kings-Lynne wrote:

./configure --enable-debug

Is this enough? I'm seeing that with --enable-debug only the
option -g is passed to the compiler and the option -O2 is
still there, is it not better compile with -O0 if you are
going to debug it?

If you want to single-step through the code a lot, then -O0 is good.
But are you really gonna do that so much? I do most of my tracing
at the level of function calls.

Of course not, but given that I don't know nothing I guess at the
beginning in order to see what is going on and understand how the code
work I need to "inspect" some variables some times.

I tend to use -O1 as a compromise setting --- the code isn't totally
scrambled but it doesn't run like a dog either. (Also, for development
purposes, -O0 is evil because it disables certain useful warnings in
gcc.)

Thank you for the advice.

Regards
Gaetano Mendola

#6Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Gaetano Mendola (#3)
Re: debuging postgres

Is this enough? I'm seeing that with --enable-debug only the
option -g is passed to the compiler and the option -O2 is
still there, is it not better compile with -O0 if you are
going to debug it?

Well, I use the following:

./configure --prefix=blah --enable-debug --enable-cassert
--enable-depend --with-openssl --with-perl --with-pam

(Or something like that)

My theory is that the more I compile in the more that gets tested :)

Chris