<?xml version="1.0" encoding="UTF-8" ?> <sect1 id="debugging-3-2"> <sect1info> <title>Debugging in &quantaplus;</title> <authorgroup> <author> <firstname>Christopher</firstname> <surname>Hornbaker</surname> <affiliation> <address><email>chrishornbaker@earthlink.net</email></address> </affiliation> </author> <author> <firstname>Linus</firstname> <surname>McCabe</surname> <affiliation> <address><email>Linus@McCabe.nu</email></address> </affiliation> </author> <!-- TRANS:ROLES_OF_TRANSLATORS --> </authorgroup> </sect1info> <title>Debugging in &quantaplus;</title> <sect2 id="php-debugging-3-2"> <title>Using the &PHP; Debugger</title> <para> With &quantaplus; version 3.3, the debugger handling was reimplemented. The support for the now obsolete &PHP; (3) builtin debugger and was dropped, as was the support for the dbg debugger. Instead, a general debug plugin system was developed, to allow different plugin implementations. </para> <para> Currently only one plugin is available which adds support to use &gubed; with &quantaplus;. </para> <para> To use a debugger for your project, open the project settings and chose a suitable debugger plugin. To alter debugger specific settings, press the 'Options' button next to the debugger plugin drop down. </para> <sect3 id="php-debuggin-3-2-general"> <title>General usage</title> <para> Once a project has a debugger activated, a few additional items will appear in the &quantaplus; user interface: </para> <variablelist> <varlistentry> <term>Debugger menu</term> <listitem> <para> A new menu will appear where you can reach most of the debugger functionality. </para> </listitem> </varlistentry> <varlistentry> <term>Debugger toolbar</term> <listitem> <para> A toolbar with access to the most common debugging commands. </para> </listitem> </varlistentry> <varlistentry> <term>Variables toolview</term> <listitem> <para> A toolview where the contents of watched variables is showed. Appears in the left dock by default. </para> </listitem> </varlistentry> <varlistentry> <term>Breakpoints toolview</term> <listitem> <para> A toolview where all the breakpoints, line and conditional, are listed. Appears in the bottom dock by default. </para> </listitem> </varlistentry> <varlistentry> <term>Debug Output toolview</term> <listitem> <para> A toolview where the output (as in HTML) of the debugger is shown. Appears in the bottom dock by default. </para> </listitem> </varlistentry> </variablelist> <para> Depending on what the debugger plugin supports, all or a subset of the following functionality will be available. </para> <variablelist> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Session</guimenuitem> <guimenuitem>Start Session</guimenuitem> </menuchoice> </term> <listitem> <para> This action is used to connect to the debugger if that is required, or tell the plugin to start listening for debug requests. This action is triggered by default when a project using a debugger is opened, so usually you don't need to care about it. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Session</guimenuitem> <guimenuitem>End Session</guimenuitem> </menuchoice> </term> <listitem> <para> The opposite of <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Session</guimenuitem> <guimenuitem>Start Session</guimenuitem> </menuchoice>. Closes a connection to the debugger or stops listening for requests. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Execution</guimenuitem> <guimenuitem>Send HTTP Request</guimenuitem> </menuchoice> </term> <listitem> <para> Sends a HTTP request to the server to initiate a debug request. Using this action is equivalent to using a browser to look at the current document. The output of the request ends up in the Debug Output dock. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Execution</guimenuitem> <guimenuitem>Pause</guimenuitem> </menuchoice> </term> <listitem> <para> Pauses a running script </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Execution</guimenuitem> <guimenuitem>Run</guimenuitem> </menuchoice> </term> <listitem> <para> Tells the debugger to start executing the script and send information about watched variables and current line of execution as it goes along. If this is done while a script is paused, execution will proceed. If it's done before a debug request is initiated, the script will start running as soon as the request is initiated. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Execution</guimenuitem> <guimenuitem>Leap</guimenuitem> </menuchoice> </term> <listitem> <para> Tells the debugger to start executing the script without sending information about watched variables and current line of execution. If this is done while a script is paused, execution will proceed. If it's done before a debug request is initiated, the script will start leaping as soon as the request is initiated. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Execution</guimenuitem> <guimenuitem>Step</guimenuitem> </menuchoice> </term> <listitem> <para> Tells the debugger to execute the next instruction in the script, without stepping into functions or inclusions. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Execution</guimenuitem> <guimenuitem>Step Into</guimenuitem> </menuchoice> </term> <listitem> <para> Tells the debugger to execute the next instruction in the script, stepping into functions or inclusions if possible. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Execution</guimenuitem> <guimenuitem>Step Out</guimenuitem> </menuchoice> </term> <listitem> <para> Tells the debugger to execute until it escapes the current function. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Execution</guimenuitem> <guimenuitem>Skip</guimenuitem> </menuchoice> </term> <listitem> <para> Tells the debugger to skip the next instruction and proceed to the next one as if the current one didn't exist. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Execution</guimenuitem> <guimenuitem>Kill</guimenuitem> </menuchoice> </term> <listitem> <para> Tells the debugger to kill the currently running script. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Breakpoints</guimenuitem> <guimenuitem>Break when...</guimenuitem> </menuchoice> </term> <listitem> <para> Opens a dialog where you can specify conditional breakpoints. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Breakpoints</guimenuitem> <guimenuitem>Toggle breakpoint</guimenuitem> </menuchoice> </term> <listitem> <para> Toggles a line breakpoint at the line of the cursor in the current line </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Breakpoints</guimenuitem> <guimenuitem>Clear breakpoints</guimenuitem> </menuchoice> </term> <listitem> <para> Clears all the breakpoints. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Variables</guimenuitem> <guimenuitem>Watch variable</guimenuitem> </menuchoice> </term> <listitem> <para> Opens a dialog where you can enter a variable or expression you wish to watch. The value of the watch will appear in the variables tool view. </para> </listitem> </varlistentry> <varlistentry> <term> <menuchoice> <guimenu>Debug</guimenu> <guimenuitem>Variables</guimenuitem> <guimenuitem>Set value of variable</guimenuitem> </menuchoice> </term> <listitem> <para> Opens a dialog where you can enter a variable and a new value for it. </para> </listitem> </varlistentry> </variablelist> </sect3> </sect2> <sect2 id="kxsldbg-debugging-3-2"> <title>Using &kxsl;, the &XSL; Debugger</title> <para> &kxsl; is the creation of Keith Isdale, as is this section of the documentation. &kxsl; is a &kde; front-end and a KPart to <command>xsldbg</command>, which you can find at http://xsldbg.sf.net along with many other works by Keith. </para> <para> To start &kxsl;, select <menuchoice> <guimenu>Plugins</guimenu> <guimenuitem>&kxsl;</guimenuitem> </menuchoice>. </para> <para> Please refer to the &kxsl; documentation for further information regarding its usage. </para> </sect2> </sect1>