fielding    98/10/09 14:22:27

  Modified:    .        debugging.html
  Log:
  Add information about using truss
  
  Revision  Changes    Path
  1.5       +31 -2     apache-devsite/debugging.html
  
  Index: debugging.html
  ===================================================================
  RCS file: /export/home/cvs/apache-devsite/debugging.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- debugging.html    1998/10/09 20:53:45     1.4
  +++ debugging.html    1998/10/09 21:22:27     1.5
  @@ -21,11 +21,13 @@
   <OL>
   <LI><A HREF="#gdb">Using '<CODE>gdb</CODE>'</A>
   <LI><A HREF="#backtrace">Getting a live backtrace</A>
  +<LI><A HREF="#truss">Using '<CODE>truss/trace/strace</CODE>' to
  +    trace system calls and signals</A>
   </OL>
   
   <HR>
   
  -<P><A NAME="gdb"><B>Using '<CODE>gdb</CODE>'</B></A>
  +<H3><A NAME="gdb"><B>Using '<CODE>gdb</CODE>'</B></A></H3>
   
   <P>If you use the gcc or egcs compilers, it is likely that the best
   debugger for your system is gdb.  This is only a brief summary of how
  @@ -162,7 +164,7 @@
   
   <HR>
   
  -<P><A NAME="backtrace"><B>Getting a live backtrace</B></A>
  +<H3><A NAME="backtrace"><B>Getting a live backtrace</B></A></H3>
   
   <P>A backtrace will let you know the hierarchy of procedures that
   were called to get to a particular point in the process.  On some platforms
  @@ -210,6 +212,33 @@
       #4  0x449fc in main (argc=3, argv=0xefffeee4) at http_main.c:4534
       (gdb) 
   </PRE>
  +<P>
  +
  +<HR>
  +
  +<H3><A NAME="truss"><B>Using '<CODE>truss/trace/strace</CODE>' to
  +    trace system calls and signals</B></A></H3>
  +
  +<P>Most Unix-based systems have at least one command for displaying
  +a trace of system calls and signals as they are accessed by a running
  +process.  This command is called <CODE>truss</CODE> on most SVR4-based
  +systems and either <CODE>trace</CODE> or <CODE>strace</CODE> on many
  +other systems.
  +
  +<P>A useful tip for using the <CODE>truss</CODE> command on Solaris is
  +the <CODE>-f</CODE> option; it tells truss to follow and continue tracing
  +any child processes forked by the main process.  The easiest way to get
  +a full trace of a server is to do something like:
  +<PRE>
  +    % <font color=green>truss -f httpd -d /usr/local/apache &gt;&amp; 
outfile</font>
  +</PRE>
  +and let it run through a few requests before killing the parent.  You can
  +then view the entire trace in outfile, or use something like
  +<PRE>
  +    % <font color=green>egrep '^10698:' outfile</font>
  +</PRE>
  +to view just the trace of the process id 10698.
  +<P>
   
   <HR>
   
  
  
  

Reply via email to