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 doing. See
      Section 7.9.1.2, “Creating Trace Files”.
    
This section summarizes the argument values that you can specify in debug options on the command line for MySQL programs that have been built with debugging support.
      The DBUG package can be used by invoking a
      program with the
      --debug[=
      or debug_options]-# [
      option. If you specify the debug_options]--debug or
      -# option without a
      debug_options value, most MySQL
      programs use a default value. The server default is
      d:t:i:o,/tmp/mysqld.trace on Unix and
      d:t:i:O,\mysqld.trace on Windows. The effect of
      this default is:
d: Enable output for all debug macrost: Trace function calls and exitsi: Add PID to output lineso,/tmp/mysqld.trace,O,\mysqld.trace: Set the debug output file.
      Most client programs use a default
      debug_options value of
      d:t:o,/tmp/,
      regardless of platform.
    program_name.trace
Here are some example debug control strings as they might be specified on a shell command line:
--debug=d:t
--debug=d:f,main,subr1:F:L:t,20
--debug=d,input,output,files:n
--debug=d:t:i:O,\\mysqld.trace
      For mysqld, it is also possible to change DBUG
      settings at runtime by setting the
      debug system variable. This
      variable has global and session values:
    
mysql> SET GLOBAL debug = 'debug_options';
mysql> SET SESSION debug = 'debug_options';
      Changing the global debug value
      requires privileges sufficient to set global system variables.
      Changing the session debug value
      requires privileges sufficient to set restricted session system
      variables. See Section 7.1.9.1, “System Variable Privileges”.
    
      The debug_options value is a sequence
      of colon-separated fields:
    
field_1:field_2:...:field_N
      Each field within the value consists of a mandatory flag
      character, optionally preceded by a + or
      - character, and optionally followed by a
      comma-separated list of modifiers:
    
[+|-]flag[,modifier,modifier,...,modifier]The following table describes the permitted flag characters. Unrecognized flag characters are silently ignored.
Flag  | 
          Description  | 
        
|---|---|
                | 
          
              Enable output from
               
              In MySQL, common debug macro keywords to enable are
                | 
        
                | 
          
              Delay after each debugger output line. The argument is the
              delay, in tenths of seconds, subject to machine
              capabilities. For example,   | 
        
                | 
          
              Limit debugging, tracing, and profiling to the list of
              named functions. An empty list enables all functions. The
              appropriate   | 
        
                | 
          Identify the source file name for each line of debug or trace output.  | 
        
                | 
          Identify the process with the PID or thread ID for each line of debug or trace output.  | 
        
                | 
          Identify the source file line number for each line of debug or trace output.  | 
        
                | 
          Print the current function nesting depth for each line of debug or trace output.  | 
        
                | 
          Number each line of debug output.  | 
        
                | 
          
              Redirect the debugger output stream to the specified file.
              The default output is   | 
        
                | 
          
              Like   | 
        
                | 
          
              Like   | 
        
                | 
          
              Like   | 
        
                | 
          
              Limit debugger actions to specified processes. A process
              must be identified with the
                | 
        
                | 
          Print the current process name for each line of debug or trace output.  | 
        
                | 
          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.  | 
        
                | 
          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 occurs for either debugging or tracing macros. The default is a compile time option.  | 
        
                | 
          Print the current timestamp for every line of output.  | 
      The leading + or - character
      and trailing list of modifiers are used for flag characters such
      as d or f that can enable a
      debug operation for all applicable modifiers or just some of them:
With no leading
+or-, the flag value is set to exactly the modifier list as given.With a leading
+or-, the modifiers in the list are added to or subtracted from the current modifier list.
      The following examples show how this works for the
      d flag. An empty d list
      enabled output for all debug macros. A nonempty list enables
      output only for the macro keywords in the list.
    
      These statements set the d value to the
      modifier list as given:
    
mysql> SET debug = 'd';
mysql> SELECT @@debug;
+---------+
| @@debug |
+---------+
| d       |
+---------+
mysql> SET debug = 'd,error,warning';
mysql> SELECT @@debug;
+-----------------+
| @@debug         |
+-----------------+
| d,error,warning |
+-----------------+
      A leading + or - adds to or
      subtracts from the current d value:
    
mysql> SET debug = '+d,loop';
mysql> SELECT @@debug;
+----------------------+
| @@debug              |
+----------------------+
| d,error,warning,loop |
+----------------------+
mysql> SET debug = '-d,error,loop';
mysql> SELECT @@debug;
+-----------+
| @@debug   |
+-----------+
| d,warning |
+-----------+Adding to “all macros enabled” results in no change:
mysql> SET debug = 'd';
mysql> SELECT @@debug;
+---------+
| @@debug |
+---------+
| d       |
+---------+
mysql> SET debug = '+d,loop';
mysql> SELECT @@debug;
+---------+
| @@debug |
+---------+
| d       |
+---------+
      Disabling all enabled macros disables the d
      flag entirely:
    
mysql> SET debug = 'd,error,loop';
mysql> SELECT @@debug;
+--------------+
| @@debug      |
+--------------+
| d,error,loop |
+--------------+
mysql> SET debug = '-d,error,loop';
mysql> SELECT @@debug;
+---------+
| @@debug |
+---------+
|         |
+---------+