# 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.