<chapter id="cha-debugging">
  <title>Debugging</title>
  <para> 
    GStreamer has an extensive set of debugging tools for
    plugin developers.
  </para>
 
  <sect1>
    <title>Command line options</title>
    <para> 
      Applications using the GStreamer libraries accept the following set
      of command line argruments to enable the debugging system.
    </para>
      
    <para> 
     <itemizedlist>
       <listitem>
         <para>
          <option>--gst-debug-mask=<replaceable>mask</replaceable></option> 
	  Sets the mask for the debugging output.
         </para>
       </listitem>
       <listitem>
         <para>
          <option>--gst-info-mask=<replaceable>mask</replaceable></option> 
	  Sets the mask for the info output.
         </para>
       </listitem>
       <listitem>
         <para>
          <option>--gst-mask=<replaceable>mask</replaceable></option> 
	  Sets the mask for the info *and* the debug output.
         </para>
       </listitem>
       <listitem>
         <para>
          <option>--gst-plugin-spew</option> 
	  Enable printout of errors while loading GST plugins.
         </para>
       </listitem>
       <listitem>
         <para>
          <option>--gst-plugin-path=<replaceable>PATH</replaceable></option> 
	  Add a directory to the plugin search path.
         </para>
       </listitem>
       <listitem>
         <para>
           <option>--help</option> Print the a short desciption of the
	   options and an overview of the current debugging/info masks
	   set.
         </para>
       </listitem>
     </itemizedlist>
    </para>
    <para>
      The follwing table gives an overview of the mask values and 
      their meaning. (enabled) means that the corresponding flag
      has been set.
    </para>
    <programlisting>
Mask (to be OR'ed)   info/debug         FLAGS   
--------------------------------------------------------
0x00000001     (enabled)/              GST_INIT
0x00000002              /              COTHREADS
0x00000004              /              COTHREAD_SWITCH
0x00000008              /              AUTOPLUG
0x00000010              /              AUTOPLUG_ATTEMPT
0x00000020              /              PARENTAGE
0x00000040              /              STATES
0x00000080              /              PLANING
0x00000100              /              SCHEDULING
0x00000200              /              OPERATION
0x00000400              /              BUFFER
0x00000800              /              CAPS
0x00001000              /              CLOCK
0x00002000              /              ELEMENT_PADS
0x00004000              /              ELEMENTFACTORY
0x00008000              /              PADS
0x00010000              /              PIPELINE
0x00020000              /              PLUGIN_LOADING
0x00040000              /              PLUGIN_ERRORS
0x00080000              /              PLUGIN_INFO
0x00100000              /              PROPERTIES
0x00200000              /              THREAD
0x00400000              /              TYPES
0x00800000              /              XML
0x01000000              /              NEGOTIATION
0x02000000              /              REFCOUNTING
    </programlisting>
  </sect1>
  <sect1>
    <title>Adding a custom debug handler</title>
    <para> 
    </para> 
  </sect1>

</chapter>