# Debugging in &quantaplus;

Christopher
Hornbaker

    chrishornbaker@earthlink.net

Linus
McCabe

    Linus@McCabe.nu

# Debugging in &quantaplus;

## Using the &PHP; Debugger

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.

Currently only one plugin is available which adds support to use &gubed; with &quantaplus;.

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.

### General usage

Once a project has a debugger activated, a few additional items will appear in the &quantaplus; user interface:

Debugger menu

  A new menu will appear where you can reach most of the debugger functionality.

Debugger toolbar

  A toolbar with access to the most common debugging commands.

Variables toolview

  A toolview where the contents of watched variables is showed. Appears in the left dock by default.

Breakpoints toolview

  A toolview where all the breakpoints, line and conditional, are listed. Appears in the bottom dock by default.

Debug Output toolview

  A toolview where the output (as in HTML) of the debugger is shown. Appears in the bottom dock by default.

Depending on what the debugger plugin supports, all or a subset of the following functionality will be available.

Debug Session Start Session

  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.

Debug Session End Session

  The opposite of Debug Session Start Session . Closes a connection to the debugger or stops listening for requests.

Debug Execution Send HTTP Request

  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.

Debug Execution Pause

  Pauses a running script

Debug Execution Run

  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.

Debug Execution Leap

  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.

Debug Execution Step

  Tells the debugger to execute the next instruction in the script, without stepping into functions or inclusions.

Debug Execution Step Into

  Tells the debugger to execute the next instruction in the script, stepping into functions or inclusions if possible.

Debug Execution Step Out

  Tells the debugger to execute until it escapes the current function.

Debug Execution Skip

  Tells the debugger to skip the next instruction and proceed to the next one as if the current one didn't exist.

Debug Execution Kill

  Tells the debugger to kill the currently running script.

Debug Breakpoints Break when...

  Opens a dialog where you can specify conditional breakpoints.

Debug Breakpoints Toggle breakpoint

  Toggles a line breakpoint at the line of the cursor in the current line

Debug Breakpoints Clear breakpoints

  Clears all the breakpoints.

Debug Variables Watch variable

  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.

Debug Variables Set value of variable

  Opens a dialog where you can enter a variable and a new value for it.

## Using &kxsl;, the &XSL; Debugger

&kxsl; is the creation of Keith Isdale, as is this section of the documentation. &kxsl; is a &kde; front-end and a KPart to `xsldbg`, which you can find at http://xsldbg.sf.net along with many other works by Keith.

To start &kxsl;, select Plugins &kxsl; .

Please refer to the &kxsl; documentation for further information regarding its usage.