diff options
author | Bruce Momjian <bruce@momjian.us> | 2005-04-23 18:57:46 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2005-04-23 18:57:46 +0000 |
commit | 9f1e864d02ed4ec57105e531815ac7c113963559 (patch) | |
tree | 50c222acea4ea7c44b41546ab80bfd7b55986028 /doc/src | |
parent | c34ea747a69926a345e6c09e8cc9152e05908215 (diff) | |
download | postgresql-9f1e864d02ed4ec57105e531815ac7c113963559.tar.gz postgresql-9f1e864d02ed4ec57105e531815ac7c113963559.zip |
Add item about server-side debugging.
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/FAQ/FAQ_DEV.html | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/doc/src/FAQ/FAQ_DEV.html b/doc/src/FAQ/FAQ_DEV.html index 111fb12a0c8..a9ef832f29a 100644 --- a/doc/src/FAQ/FAQ_DEV.html +++ b/doc/src/FAQ/FAQ_DEV.html @@ -13,7 +13,7 @@ <H1>Developer's Frequently Asked Questions (FAQ) for PostgreSQL</H1> - <P>Last updated: Sun Mar 13 22:07:18 EST 2005</P> + <P>Last updated: Sat Apr 23 14:57:40 EDT 2005</P> <P>Current maintainer: Bruce Momjian (<A href= "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> @@ -71,6 +71,8 @@ <I>pfree</I>() to allocate memory?<BR> <A href="#2.6">2.6</A>) What is ereport()?<BR> <A href="#2.7">2.7</A>) What is CommandCounterIncrement()?<BR> + <A href="#2.8">2.8</A>) What debugging features are available?<BR> + <BR> <HR> @@ -941,6 +943,45 @@ modified by previous pieces. <I>CommandCounterIncrement()</I> increments the Command Counter, creating a new part of the transaction.</P> + + <H3><A name="2.8">2.8</A>) What debugging features are + available?</H3> + + <P>First, try running <I>configure</I> with the --enable-cassert + option, many <I>assert()</I>s monitor the progress of the backend + and halt the program when something unexpected occurs.</P> + + <P>The <I>postmaster</I> has a <I>-d</I> option that allows even more + detailed information to be reported. The <I>-d</I> option takes a + number that specifies the debug level. Be warned that high debug + level values generate large log files.</P> + + <P>If the <I>postmaster</I> is not running, you can actually run the + <I>postgres</I> backend from the command line, and type your + <SMALL>SQL</SMALL> statement directly. This is recommended + <B>only</B> for debugging purposes. If you have compiled with debugging + symbols, you can use a debugger to see what is happening. Because + the backend was not started from <I>postmaster</I>, it is not + running in an identical environment and locking/backend interaction + problems may not be duplicated.</P> + + <P>If the <I>postmaster</I> is running, start <I>psql</I> in one + window, then find the <SMALL>PID</SMALL> of the <I>postgres</I> + process used by <I>psql</I> using <CODE>SELECT pg_backend_pid()</CODE>. + Use a debugger to attach to the <I>postgres</I> <SMALL>PID</SMALL>. + You can set breakpoints in the debugger and issue queries from + + <I>psql</I>. If you are debugging <I>postgres</I> startup, you can + set PGOPTIONS="-W n", then start <I>psql</I>. This will cause startup + to delay for <I>n</I> seconds so you can attach to the process with + the debugger, set any breakpoints, and continue through the startup + sequence.</P> + + <P>You can also compile with profiling to see what functions are + taking execution time. The backend profile files will be deposited + in the <I>pgsql/data/base/dbname</I> directory. The client profile + file will be put in the client's current directory. Linux requires + a compile with <I>-DLINUX_PROFILE</I> for proper profiling.</P> </BODY> </HTML> |