Thread: debuging postgres
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
> 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
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
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
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
> 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