From 155e56bd970d4f386fd3ca903eadc2b8d3ee0276 Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Fri, 2 Dec 2011 17:08:33 -0500 Subject: [PATCH] Update documentation suggestions for debugging the backend. Tom Lane, with minor adjustments by me. --- doc/src/sgml/installation.sgml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index 113596138ef..75fb7838949 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -1415,10 +1415,23 @@ su - postgres <note> <para> - Server developers should consider using the configure options - <option>--enable-cassert</> and <option>--enable-debug</> to enhance the - ability to detect and debug server errors. Your debugger might - also require specific compiler flags to produce useful output. + When developing code inside the server, it is recommended to + use the configure options <option>--enable-cassert</> (which + turns on many run-time error checks) and <option>--enable-debug</> + (which improves the usefulness of debugging tools). + </para> + + <para> + If using GCC, it is best to build with an optimization level of + at least <option>-O1</>, because using no optimization + (<option>-O0</>) disables some important compiler warnings (such + as the use of uninitialized variables). However, non-zero + optimization levels can complicate debugging because stepping + through compiled code will usually not match up one-to-one with + source code lines. If you get confused while trying to debug + optimized code, recompile the specific files of interest with + <option>-O0</>. An easy way to do this is by passing an option + to <application>make</>: <command>gmake PROFILE=-O0 file.o</>. </para> </note> </step> -- GitLab