Thread: debuging postgres

debuging postgres

From
Gaetano Mendola
Date:
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





Re: debuging postgres

From
Christopher Kings-Lynne
Date:
> 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



Re: debuging postgres

From
Gaetano Mendola
Date:
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










Re: debuging postgres

From
Tom Lane
Date:
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


Re: debuging postgres

From
Gaetano Mendola
Date:
Tom Lane wrote:
> Gaetano Mendola <mendola@bigfoot.com> writes:>>>Christopher Kings-Lynne wrote:>>>>>./configure --enable-debug>>>>Is
thisenough? I'm seeing that with --enable-debug only the>>option -g is passed to the compiler and the option -O2
is>>stillthere, is it not better compile with -O0 if you are>>going to debug it?>>> If you want to single-step through
thecode 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
functioncalls.
 

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






Re: debuging postgres

From
Christopher Kings-Lynne
Date:
> 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