DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info.gz) The DBUG package

Info Catalog (mysql.info.gz) Debugging client (mysql.info.gz) Porting (mysql.info.gz) RTS-threads
 
 E.3 The DBUG Package
 ====================
 
 The MySQL server and most MySQL clients are compiled with the DBUG
 package originally created by Fred Fish.  When you have configured
 MySQL for debugging, this package makes it possible to get a trace file
 of what the program is debugging.   Making trace files.
 
 This section summaries the argument values that you can specify in debug
 options on the command line for MySQL programs that have been built with
 debugging support. For more information about programming with the DBUG
 package, see the DBUG manual in the `dbug' directory of MySQL source
 distributions. It's best to use a recent distribution for MySQL 5.0 to
 get the most updated DBUG manual.
 
 You use the debug package by invoking a program with the
 `--debug="..."' or the `-#...' option.
 
 Most MySQL programs have a default debug string that will be used if
 you don't specify an option to `--debug'.  The default trace file is
 usually `/tmp/program_name.trace' on Unix and `\program_name.trace' on
 Windows.
 
 The debug control string is a sequence of colon-separated fields as
 follows:
 
      <field_1>:<field_2>:...:<field_N>
 
 Each field consists of a mandatory flag character followed by an
 optional `,' and comma-separated list of modifiers:
 
      flag[,modifier,modifier,...,modifier]
 
 The currently recognized flag characters are:
 
 *Flag**Description*
 `d'  Enable output from DBUG_<N> macros for the current state. May be
      followed by a list of keywords which selects output only for the
      DBUG macros with that keyword. An empty list of keywords implies
      output for all macros.
 `D'  Delay after each debugger output line. The argument is the number
      of tenths of seconds to delay, subject to machine capabilities. For
      example, `-#D,20' specifies a delay of two seconds.
 `f'  Limit debugging and/or tracing, and profiling to the list of named
      functions.  Note that a null list disables all functions.   The
      appropriate `d' or `t' flags must still be given; this flag only
      limits their actions if they are enabled.
 `F'  Identify the source file name for each line of debug or trace
      output.
 `i'  Identify the process with the PID or thread ID for each line of
      debug or trace output.
 `g'  Enable profiling.  Create a file called `dbugmon.out' containing
      information that can be used to profile the program.  May be
      followed by a list of keywords that select profiling only for the
      functions in that list.  A null list implies that all functions are
      considered.
 `L'  Identify the source file line number for each line of debug or
      trace output.
 `n'  Print the current function nesting depth for each line of debug or
      trace output.
 `N'  Number each line of debug output.
 `o'  Redirect the debugger output stream to the specified file.  The
      default output is `stderr'.
 `O'  Like `o', but the file is really flushed between each write. When
      needed, the file is closed and reopened between each write.
 `p'  Limit debugger actions to specified processes. A process must be
      identified with the `DBUG_PROCESS' macro and match one in the list
      for debugger actions to occur.
 `P'  Print the current process name for each line of debug or trace
      output.
 `r'  When pushing a new state, do not inherit the previous state's
      function nesting level. Useful when the output is to start at the
      left margin.
 `S'  Do function `_sanity(_file_,_line_)' at each debugged function
      until `_sanity()' returns something that differs from 0. (Mostly
      used with `safemalloc' to find memory leaks)
 `t'  Enable function call/exit trace lines. May be followed by a list
      (containing only one modifier) giving a numeric maximum trace
      level, beyond which no output will occur for either debugging or
      tracing macros.  The default is a compile time option.
 
 Some examples of debug control strings that might appear on a shell
 command line (the `-#' is typically used to introduce a control string
 to an application program) are:
 
      -#d:t
      -#d:f,main,subr1:F:L:t,20
      -#d,input,output,files:n
      -#d:t:i:O,\\mysqld.trace
 
 In MySQL, common tags to print (with the `d' option) are `enter',
 `exit', `error', `warning', `info', and `loop'.
 
Info Catalog (mysql.info.gz) Debugging client (mysql.info.gz) Porting (mysql.info.gz) RTS-threads
automatically generated byinfo2html