eric6/Documentation/Source/eric6.Debugger.DebugServer.html

changeset 7887
c1588f5a83e9
parent 7707
6abcf4275d0e
child 7890
c7b98271f551
diff -r 3e4605cc3541 -r c1588f5a83e9 eric6/Documentation/Source/eric6.Debugger.DebugServer.html
--- a/eric6/Documentation/Source/eric6.Debugger.DebugServer.html	Thu Dec 17 14:30:46 2020 +0100
+++ b/eric6/Documentation/Source/eric6.Debugger.DebugServer.html	Thu Dec 17 14:40:06 2020 +0100
@@ -64,53 +64,58 @@
 <dd>
 emitted after the client reported the call trace
         data (isCall, fromFile, fromLine, fromFunction, toFile, toLine,
-        toFunction)
-</dd>
-<dt>clientBanner(version, platform, dbgclient, venvname)</dt>
+        toFunction, debuggerId)
+</dd>
+<dt>clientBanner(version, platform, venvname)</dt>
 <dd>
 emitted after
         the client banner data was received
 </dd>
-<dt>clientBreakConditionError(fn, lineno)</dt>
-<dd>
-emitted after the client has
-        signaled a syntax error in a breakpoint condition
+<dt>clientBreakConditionError(fn, lineno, debuggerId)</dt>
+<dd>
+emitted after the
+        client has signaled a syntax error in a breakpoint condition
 </dd>
 <dt>clientCapabilities(capabilities, cltype, venvname)</dt>
 <dd>
 emitted after
         the clients capabilities were received
 </dd>
-<dt>clientClearBreak(filename, lineno)</dt>
-<dd>
-emitted after the debug client
-        has decided to clear a temporary breakpoint
-</dd>
-<dt>clientClearWatch(condition)</dt>
-<dd>
-emitted after the debug client
-            has decided to clear a temporary watch expression
-</dd>
-<dt>clientCompletionList(completionList, text)</dt>
+<dt>clientClearBreak(filename, lineno, debuggerId)</dt>
+<dd>
+emitted after the
+        debug client has decided to clear a temporary breakpoint
+</dd>
+<dt>clientClearWatch(condition, debuggerId)</dt>
+<dd>
+emitted after the debug
+        client has decided to clear a temporary watch expression
+</dd>
+<dt>clientCompletionList(completionList, text, debuggerId)</dt>
+<dd>
+emitted
+        after the client the commandline completion list and the reworked
+        search string was received from the client
+</dd>
+<dt>clientDebuggerId(debuggerId)</dt>
+<dd>
+emitted to indicate a newly connected
+        debugger backend
+</dd>
+<dt>clientDisassembly(disassembly, debuggerId)</dt>
 <dd>
 emitted after the client
-        the commandline completion list and the reworked searchstring was
-        received from the client
-</dd>
-<dt>clientDisassembly(disassembly)</dt>
-<dd>
-emitted after the client has sent
-        a disassembly of the code raising an exception
-</dd>
-<dt>clientException(exception)</dt>
-<dd>
-emitted after an exception occured on
-        the client side
-</dd>
-<dt>clientExit(int, str, bool)</dt>
-<dd>
-emitted after the client has exited
-        giving the exit status, an exit message and an indication to be quiet
+        has sent a disassembly of the code raising an exception
+</dd>
+<dt>clientException(exceptionType, exceptionMessage, stackTrace, debuggerId)</dt>
+<dd>
+        emitted after an exception occured on the client side
+</dd>
+<dt>clientExit(str, int, str, bool, str)</dt>
+<dd>
+emitted after the client has
+        exited giving the program name, the exit status, an exit message, an
+        indication to be quiet and the ID of the exited client
 </dd>
 <dt>clientGone(bool)</dt>
 <dd>
@@ -122,10 +127,10 @@
 emitted to signal a change of the
         client interpreter
 </dd>
-<dt>clientLine(filename, lineno, forStack)</dt>
-<dd>
-emitted after the
-        debug client has executed a line of code
+<dt>clientLine(filename, lineno, debuggerId, forStack)</dt>
+<dd>
+emitted after
+        the debug client has executed a line of code
 </dd>
 <dt>clientOutput(str)</dt>
 <dd>
@@ -141,61 +146,66 @@
 emitted after the client has sent some
         output via stdout
 </dd>
-<dt>clientRawInput(prompt, echo)</dt>
-<dd>
-emitted after a raw input request was
-        received
-</dd>
-<dt>clientRawInputSent()</dt>
-<dd>
-emitted after the data was sent to the
-        debug client
-</dd>
-<dt>clientSignal(signal)</dt>
-<dd>
-emitted after a signal has been generated on
-        the client side
-</dd>
-<dt>clientStack(stack)</dt>
-<dd>
-emitted after the debug client has executed a
-        line of code
-</dd>
-<dt>clientStatement(bool)</dt>
-<dd>
-emitted after an interactive command has
-        been executed. The parameter is 0 to indicate that the command is
-        complete and 1 if it needs more input.
-</dd>
-<dt>clientSyntaxError(exception)</dt>
-<dd>
-emitted after a syntax error has been
-        detected on the client side
-</dd>
-<dt>clientThreadList(currentId, threadList)</dt>
-<dd>
-emitted after a thread list
-        has been received
-</dd>
-<dt>clientThreadSet()</dt>
-<dd>
-emitted after the client has acknowledged the
-        change of the current thread
-</dd>
-<dt>clientVariable(scope, variables)</dt>
-<dd>
-emitted after a dump for one class
-        variable has been received
-</dd>
-<dt>clientVariables(scope, variables)</dt>
-<dd>
-emitted after a variables dump
-        has been received
-</dd>
-<dt>clientWatchConditionError(condition)</dt>
+<dt>clientRawInput(prompt, echo, debuggerId)</dt>
+<dd>
+emitted after a raw input
+        request was received
+</dd>
+<dt>clientRawInputSent(debuggerId)</dt>
+<dd>
+emitted after the data was sent
+        to the indicated debug client
+</dd>
+<dt>clientSignal(message, filename, linenumber, function name, function arguments, debuggerId)</dt>
+<dd>
+        emitted after a signal has been
+        generated on the client side
+</dd>
+<dt>clientStack(stack, debuggerId)</dt>
+<dd>
+emitted after the debug client has
+        executed a line of code
+</dd>
+<dt>clientStatement(continue, debuggerId)</dt>
+<dd>
+emitted after an interactive
+        command has been executed. The parameter is False to indicate that the
+        command is complete and True if it needs more input.
+</dd>
+<dt>clientSyntaxError(message, filename, linenumber, characternumber, debuggerId)</dt>
+<dd>
+        emitted after a syntax error has been detected on the
+        client side
+</dd>
+<dt>clientThreadList(currentId, threadList, debuggerId)</dt>
+<dd>
+emitted after
+        a thread list has been received
+</dd>
+<dt>clientThreadSet(debuggerId)</dt>
 <dd>
 emitted after the client has
-        signaled a syntax error in a watch expression
+        acknowledged the change of the current thread
+</dd>
+<dt>clientVariable(scope, variables, debuggerId)</dt>
+<dd>
+emitted after a dump
+        for one class variable has been received
+</dd>
+<dt>clientVariables(scope, variables, debuggerId)</dt>
+<dd>
+emitted after a
+        variables dump has been received
+</dd>
+<dt>clientWatchConditionError(condition, debuggerId)</dt>
+<dd>
+emitted after the
+        client has signaled a syntax error in a watch expression
+</dd>
+<dt>lastClientExited()</dt>
+<dd>
+emitted to indicate that the last connected
+        debug client has terminated
 </dd>
 <dt>passiveDebugStarted(str, bool)</dt>
 <dd>
@@ -369,6 +379,10 @@
 <td>Private method to restore the breakpoints after a restart.</td>
 </tr>
 <tr>
+<td><a href="#DebugServer.__restoreNoDebugList">__restoreNoDebugList</a></td>
+<td>Private method to restore the watch expressions after a restart.</td>
+</tr>
+<tr>
 <td><a href="#DebugServer.__restoreWatchpoints">__restoreWatchpoints</a></td>
 <td>Private method to restore the watch expressions after a restart.</td>
 </tr>
@@ -441,6 +455,10 @@
 <td>Public method to get the currently running debug client type.</td>
 </tr>
 <tr>
+<td><a href="#DebugServer.getDebuggerIds">getDebuggerIds</a></td>
+<td>Public method to return the IDs of the connected debugger backends.</td>
+</tr>
+<tr>
 <td><a href="#DebugServer.getExtensions">getExtensions</a></td>
 <td>Public slot to get the extensions associated with the given language.</td>
 </tr>
@@ -457,6 +475,10 @@
 <td>Public slot to get a reference to the watch expression model object.</td>
 </tr>
 <tr>
+<td><a href="#DebugServer.initializeClient">initializeClient</a></td>
+<td>Public method to initialize a freshly connected debug client.</td>
+</tr>
+<tr>
 <td><a href="#DebugServer.isClientProcessUp">isClientProcessUp</a></td>
 <td>Public method to check, if the debug client process is up.</td>
 </tr>
@@ -469,6 +491,10 @@
 <td>Public method to test, if the debug server is debugging.</td>
 </tr>
 <tr>
+<td><a href="#DebugServer.masterClientConnected">masterClientConnected</a></td>
+<td>Public method to perform actions after the master client has finally established the connection.</td>
+</tr>
+<tr>
 <td><a href="#DebugServer.passiveStartUp">passiveStartUp</a></td>
 <td>Public method to handle a passive debug connection.</td>
 </tr>
@@ -501,6 +527,10 @@
 <td>Public method to set a variables filter list.</td>
 </tr>
 <tr>
+<td><a href="#DebugServer.remoteClientStack">remoteClientStack</a></td>
+<td>Public method to request the stack of the main thread.</td>
+</tr>
+<tr>
 <td><a href="#DebugServer.remoteClientVariable">remoteClientVariable</a></td>
 <td>Public method to request the variables of the debugged program.</td>
 </tr>
@@ -629,6 +659,10 @@
 <td>Public method to process the client auto completion info.</td>
 </tr>
 <tr>
+<td><a href="#DebugServer.signalClientDebuggerId">signalClientDebuggerId</a></td>
+<td>Public method to signal the receipt of a new debugger ID.</td>
+</tr>
+<tr>
 <td><a href="#DebugServer.signalClientDisassembly">signalClientDisassembly</a></td>
 <td>Public method to process the disassembly info from the client.</td>
 </tr>
@@ -666,7 +700,7 @@
 </tr>
 <tr>
 <td><a href="#DebugServer.signalClientSyntaxError">signalClientSyntaxError</a></td>
-<td>Public method to process the syntax error info from the client.</td>
+<td>Public method to process a syntax error info from the client.</td>
 </tr>
 <tr>
 <td><a href="#DebugServer.signalClientThreadList">signalClientThreadList</a></td>
@@ -689,6 +723,10 @@
 <td>Public method to process the client watch expression error info.</td>
 </tr>
 <tr>
+<td><a href="#DebugServer.signalLastClientExited">signalLastClientExited</a></td>
+<td>Public method to process the last client exit event.</td>
+</tr>
+<tr>
 <td><a href="#DebugServer.startClient">startClient</a></td>
 <td>Public method to start a debug client.</td>
 </tr>
@@ -724,46 +762,56 @@
 </dl>
 <a NAME="DebugServer.__addBreakPoints" ID="DebugServer.__addBreakPoints"></a>
 <h4>DebugServer.__addBreakPoints</h4>
-<b>__addBreakPoints</b>(<i>parentIndex, start, end</i>)
+<b>__addBreakPoints</b>(<i>parentIndex, start, end, debuggerId=""</i>)
 
 <p>
         Private slot to add breakpoints.
 </p>
 <dl>
 
-<dt><i>parentIndex</i></dt>
-<dd>
-index of parent item (QModelIndex)
-</dd>
-<dt><i>start</i></dt>
-<dd>
-start row (integer)
-</dd>
-<dt><i>end</i></dt>
-<dd>
-end row (integer)
+<dt><i>parentIndex</i> (QModelIndex)</dt>
+<dd>
+index of parent item
+</dd>
+<dt><i>start</i> (int)</dt>
+<dd>
+start row
+</dd>
+<dt><i>end</i> (int)</dt>
+<dd>
+end row
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend to send to. If this is
+            empty, they will be broadcast to all connected backends.
 </dd>
 </dl>
 <a NAME="DebugServer.__addWatchPoints" ID="DebugServer.__addWatchPoints"></a>
 <h4>DebugServer.__addWatchPoints</h4>
-<b>__addWatchPoints</b>(<i>parentIndex, start, end</i>)
+<b>__addWatchPoints</b>(<i>parentIndex, start, end, debuggerId=""</i>)
 
 <p>
         Private slot to set a watch expression.
 </p>
 <dl>
 
-<dt><i>parentIndex</i></dt>
-<dd>
-index of parent item (QModelIndex)
-</dd>
-<dt><i>start</i></dt>
-<dd>
-start row (integer)
-</dd>
-<dt><i>end</i></dt>
-<dd>
-end row (integer)
+<dt><i>parentIndex</i> (QModelIndex)</dt>
+<dd>
+index of parent item
+</dd>
+<dt><i>start</i> (int)</dt>
+<dd>
+start row
+</dd>
+<dt><i>end</i> (int)</dt>
+<dd>
+end row
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend to send to. If this is
+            empty, they will be broadcast to all connected backends.
 </dd>
 </dl>
 <a NAME="DebugServer.__breakPointDataAboutToBeChanged" ID="DebugServer.__breakPointDataAboutToBeChanged"></a>
@@ -776,13 +824,13 @@
 </p>
 <dl>
 
-<dt><i>startIndex</i></dt>
-<dd>
-start index of the rows to be changed (QModelIndex)
-</dd>
-<dt><i>endIndex</i></dt>
-<dd>
-end index of the rows to be changed (QModelIndex)
+<dt><i>startIndex</i> (QModelIndex)</dt>
+<dd>
+start index of the rows to be changed
+</dd>
+<dt><i>endIndex</i> (QModelIndex)</dt>
+<dd>
+end index of the rows to be changed
 </dd>
 </dl>
 <a NAME="DebugServer.__changeBreakPoints" ID="DebugServer.__changeBreakPoints"></a>
@@ -794,13 +842,13 @@
 </p>
 <dl>
 
-<dt><i>startIndex</i></dt>
-<dd>
-starting index of the change breakpoins (QModelIndex)
-</dd>
-<dt><i>endIndex</i></dt>
-<dd>
-ending index of the change breakpoins (QModelIndex)
+<dt><i>startIndex</i> (QModelIndex)</dt>
+<dd>
+starting index of the change breakpoins
+</dd>
+<dt><i>endIndex</i> (QModelIndex)</dt>
+<dd>
+ending index of the change breakpoins
 </dd>
 </dl>
 <a NAME="DebugServer.__changeWatchPoints" ID="DebugServer.__changeWatchPoints"></a>
@@ -812,13 +860,13 @@
 </p>
 <dl>
 
-<dt><i>startIndex</i></dt>
-<dd>
-start index of the rows to be changed (QModelIndex)
-</dd>
-<dt><i>endIndex</i></dt>
-<dd>
-end index of the rows to be changed (QModelIndex)
+<dt><i>startIndex</i> (QModelIndex)</dt>
+<dd>
+start index of the rows to be changed
+</dd>
+<dt><i>endIndex</i> (QModelIndex)</dt>
+<dd>
+end index of the rows to be changed
 </dd>
 </dl>
 <a NAME="DebugServer.__clientClearBreakPoint" ID="DebugServer.__clientClearBreakPoint"></a>
@@ -830,13 +878,13 @@
 </p>
 <dl>
 
-<dt><i>fn</i></dt>
-<dd>
-filename of breakpoint to clear (string)
-</dd>
-<dt><i>lineno</i></dt>
-<dd>
-line number of breakpoint to clear (integer)
+<dt><i>fn</i> (str)</dt>
+<dd>
+filename of breakpoint to clear
+</dd>
+<dt><i>lineno</i> (int)</dt>
+<dd>
+line number of breakpoint to clear
 </dd>
 </dl>
 <a NAME="DebugServer.__clientClearWatchPoint" ID="DebugServer.__clientClearWatchPoint"></a>
@@ -848,9 +896,9 @@
 </p>
 <dl>
 
-<dt><i>condition</i></dt>
-<dd>
-expression of watch expression to clear (string)
+<dt><i>condition</i> (str)</dt>
+<dd>
+expression of watch expression to clear
 </dd>
 </dl>
 <a NAME="DebugServer.__clientProcessError" ID="DebugServer.__clientProcessError"></a>
@@ -876,9 +924,9 @@
 </p>
 <dl>
 
-<dt><i>clientType</i></dt>
-<dd>
-type of the client interface to be created (string)
+<dt><i>clientType</i> (str)</dt>
+<dd>
+type of the client interface to be created
 </dd>
 </dl>
 <a NAME="DebugServer.__deleteBreakPoints" ID="DebugServer.__deleteBreakPoints"></a>
@@ -890,17 +938,17 @@
 </p>
 <dl>
 
-<dt><i>parentIndex</i></dt>
-<dd>
-index of parent item (QModelIndex)
-</dd>
-<dt><i>start</i></dt>
-<dd>
-start row (integer)
-</dd>
-<dt><i>end</i></dt>
-<dd>
-end row (integer)
+<dt><i>parentIndex</i> (QModelIndex)</dt>
+<dd>
+index of parent item
+</dd>
+<dt><i>start</i> (int)</dt>
+<dd>
+start row
+</dd>
+<dt><i>end</i> (int)</dt>
+<dd>
+end row
 </dd>
 </dl>
 <a NAME="DebugServer.__deleteWatchPoints" ID="DebugServer.__deleteWatchPoints"></a>
@@ -912,17 +960,17 @@
 </p>
 <dl>
 
-<dt><i>parentIndex</i></dt>
-<dd>
-index of parent item (QModelIndex)
-</dd>
-<dt><i>start</i></dt>
-<dd>
-start row (integer)
-</dd>
-<dt><i>end</i></dt>
-<dd>
-end row (integer)
+<dt><i>parentIndex</i> (QModelIndex)</dt>
+<dd>
+index of parent item
+</dd>
+<dt><i>start</i> (int)</dt>
+<dd>
+start row
+</dd>
+<dt><i>end</i> (int)</dt>
+<dd>
+end row
 </dd>
 </dl>
 <a NAME="DebugServer.__findLanguageForExtension" ID="DebugServer.__findLanguageForExtension"></a>
@@ -961,15 +1009,21 @@
 </p>
 <dl>
 
-<dt><i>address</i></dt>
-<dd>
-address to determine the info for (string)
+<dt><i>address</i> (str)</dt>
+<dd>
+address to determine the info for
 </dd>
 </dl>
 <dl>
 <dt>Returns:</dt>
 <dd>
-tuple of network interface name (string) and index (integer)
+tuple of network interface name and index
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, int)
 </dd>
 </dl>
 <a NAME="DebugServer.__makeWatchCondition" ID="DebugServer.__makeWatchCondition"></a>
@@ -981,19 +1035,25 @@
 </p>
 <dl>
 
-<dt><i>cond</i></dt>
-<dd>
-condition (string)
-</dd>
-<dt><i>special</i></dt>
-<dd>
-special condition (string)
+<dt><i>cond</i> (str)</dt>
+<dd>
+condition
+</dd>
+<dt><i>special</i> (str)</dt>
+<dd>
+special condition
 </dd>
 </dl>
 <dl>
 <dt>Returns:</dt>
 <dd>
-condition string (string)
+condition string
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="DebugServer.__newConnection" ID="DebugServer.__newConnection"></a>
@@ -1019,94 +1079,107 @@
 </p>
 <a NAME="DebugServer.__remoteBreakpointEnable" ID="DebugServer.__remoteBreakpointEnable"></a>
 <h4>DebugServer.__remoteBreakpointEnable</h4>
-<b>__remoteBreakpointEnable</b>(<i>fn, line, enable</i>)
+<b>__remoteBreakpointEnable</b>(<i>debuggerId, fn, line, enable</i>)
 
 <p>
         Private method to enable or disable a breakpoint.
 </p>
 <dl>
 
-<dt><i>fn</i></dt>
-<dd>
-filename the breakpoint belongs to (string)
-</dd>
-<dt><i>line</i></dt>
-<dd>
-linenumber of the breakpoint (int)
-</dd>
-<dt><i>enable</i></dt>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>fn</i> (str)</dt>
+<dd>
+filename the breakpoint belongs to
+</dd>
+<dt><i>line</i> (int)</dt>
+<dd>
+linenumber of the breakpoint
+</dd>
+<dt><i>enable</i> (bool)</dt>
 <dd>
 flag indicating enabling or disabling a breakpoint
-            (boolean)
 </dd>
 </dl>
 <a NAME="DebugServer.__remoteBreakpointIgnore" ID="DebugServer.__remoteBreakpointIgnore"></a>
 <h4>DebugServer.__remoteBreakpointIgnore</h4>
-<b>__remoteBreakpointIgnore</b>(<i>fn, line, count</i>)
+<b>__remoteBreakpointIgnore</b>(<i>debuggerId, fn, line, count</i>)
 
 <p>
         Private method to ignore a breakpoint the next couple of occurrences.
 </p>
 <dl>
 
-<dt><i>fn</i></dt>
-<dd>
-filename the breakpoint belongs to (string)
-</dd>
-<dt><i>line</i></dt>
-<dd>
-linenumber of the breakpoint (int)
-</dd>
-<dt><i>count</i></dt>
-<dd>
-number of occurrences to ignore (int)
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>fn</i> (str)</dt>
+<dd>
+filename the breakpoint belongs to
+</dd>
+<dt><i>line</i> (int)</dt>
+<dd>
+linenumber of the breakpoint
+</dd>
+<dt><i>count</i> (int)</dt>
+<dd>
+number of occurrences to ignore
 </dd>
 </dl>
 <a NAME="DebugServer.__remoteWatchpoint" ID="DebugServer.__remoteWatchpoint"></a>
 <h4>DebugServer.__remoteWatchpoint</h4>
-<b>__remoteWatchpoint</b>(<i>cond, setWatch, temp=False</i>)
+<b>__remoteWatchpoint</b>(<i>debuggerId, cond, setWatch, temp=False</i>)
 
 <p>
         Private method to set or clear a watch expression.
 </p>
 <dl>
 
-<dt><i>cond</i></dt>
-<dd>
-expression of the watch expression (string)
-</dd>
-<dt><i>setWatch</i></dt>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>cond</i> (str)</dt>
+<dd>
+expression of the watch expression
+</dd>
+<dt><i>setWatch</i> (bool)</dt>
 <dd>
 flag indicating setting or resetting a watch expression
-            (boolean)
-</dd>
-<dt><i>temp</i></dt>
-<dd>
-flag indicating a temporary watch expression (boolean)
+</dd>
+<dt><i>temp</i> (bool)</dt>
+<dd>
+flag indicating a temporary watch expression
 </dd>
 </dl>
 <a NAME="DebugServer.__remoteWatchpointEnable" ID="DebugServer.__remoteWatchpointEnable"></a>
 <h4>DebugServer.__remoteWatchpointEnable</h4>
-<b>__remoteWatchpointEnable</b>(<i>cond, enable</i>)
+<b>__remoteWatchpointEnable</b>(<i>debuggerId, cond, enable</i>)
 
 <p>
         Private method to enable or disable a watch expression.
 </p>
 <dl>
 
-<dt><i>cond</i></dt>
-<dd>
-expression of the watch expression (string)
-</dd>
-<dt><i>enable</i></dt>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>cond</i> (str)</dt>
+<dd>
+expression of the watch expression
+</dd>
+<dt><i>enable</i> (bool)</dt>
 <dd>
 flag indicating enabling or disabling a watch expression
-            (boolean)
 </dd>
 </dl>
 <a NAME="DebugServer.__remoteWatchpointIgnore" ID="DebugServer.__remoteWatchpointIgnore"></a>
 <h4>DebugServer.__remoteWatchpointIgnore</h4>
-<b>__remoteWatchpointIgnore</b>(<i>cond, count</i>)
+<b>__remoteWatchpointIgnore</b>(<i>debuggerId, cond, count</i>)
 
 <p>
         Private method to ignore a watch expression the next couple of
@@ -1114,29 +1187,64 @@
 </p>
 <dl>
 
-<dt><i>cond</i></dt>
-<dd>
-expression of the watch expression (string)
-</dd>
-<dt><i>count</i></dt>
-<dd>
-number of occurrences to ignore (int)
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>cond</i> (str)</dt>
+<dd>
+expression of the watch expression
+</dd>
+<dt><i>count</i> (int)</dt>
+<dd>
+number of occurrences to ignore
 </dd>
 </dl>
 <a NAME="DebugServer.__restoreBreakpoints" ID="DebugServer.__restoreBreakpoints"></a>
 <h4>DebugServer.__restoreBreakpoints</h4>
-<b>__restoreBreakpoints</b>(<i></i>)
+<b>__restoreBreakpoints</b>(<i>debuggerId=""</i>)
 
 <p>
         Private method to restore the breakpoints after a restart.
 </p>
-<a NAME="DebugServer.__restoreWatchpoints" ID="DebugServer.__restoreWatchpoints"></a>
-<h4>DebugServer.__restoreWatchpoints</h4>
-<b>__restoreWatchpoints</b>(<i></i>)
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend to send to. If this is
+            empty, they will be broadcast to all connected backends.
+</dd>
+</dl>
+<a NAME="DebugServer.__restoreNoDebugList" ID="DebugServer.__restoreNoDebugList"></a>
+<h4>DebugServer.__restoreNoDebugList</h4>
+<b>__restoreNoDebugList</b>(<i>debuggerId=""</i>)
 
 <p>
         Private method to restore the watch expressions after a restart.
 </p>
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend to send to. If this is
+            empty, they will be broadcast to all connected backends.
+</dd>
+</dl>
+<a NAME="DebugServer.__restoreWatchpoints" ID="DebugServer.__restoreWatchpoints"></a>
+<h4>DebugServer.__restoreWatchpoints</h4>
+<b>__restoreWatchpoints</b>(<i>debuggerId=""</i>)
+
+<p>
+        Private method to restore the watch expressions after a restart.
+</p>
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend to send to. If this is
+            empty, they will be broadcast to all connected backends.
+</dd>
+</dl>
 <a NAME="DebugServer.__setClientType" ID="DebugServer.__setClientType"></a>
 <h4>DebugServer.__setClientType</h4>
 <b>__setClientType</b>(<i>clType</i>)
@@ -1146,9 +1254,9 @@
 </p>
 <dl>
 
-<dt><i>clType</i></dt>
-<dd>
-type of client to be started (string)
+<dt><i>clType</i> (str)</dt>
+<dd>
+type of client to be started
 </dd>
 </dl>
 <a NAME="DebugServer.__splitWatchCondition" ID="DebugServer.__splitWatchCondition"></a>
@@ -1160,16 +1268,21 @@
 </p>
 <dl>
 
-<dt><i>cond</i></dt>
-<dd>
-remote expression (string)
+<dt><i>cond</i> (str)</dt>
+<dd>
+remote expression
 </dd>
 </dl>
 <dl>
 <dt>Returns:</dt>
 <dd>
 tuple of local expression (string) and special condition
-            (string)
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="DebugServer.__watchPointDataAboutToBeChanged" ID="DebugServer.__watchPointDataAboutToBeChanged"></a>
@@ -1182,13 +1295,13 @@
 </p>
 <dl>
 
-<dt><i>startIndex</i></dt>
-<dd>
-start index of the rows to be changed (QModelIndex)
-</dd>
-<dt><i>endIndex</i></dt>
-<dd>
-end index of the rows to be changed (QModelIndex)
+<dt><i>startIndex</i> (QModelIndex)</dt>
+<dd>
+start index of the rows to be changed
+</dd>
+<dt><i>endIndex</i> (QModelIndex)</dt>
+<dd>
+end index of the rows to be changed
 </dd>
 </dl>
 <a NAME="DebugServer.clientUtDiscovered" ID="DebugServer.clientUtDiscovered"></a>
@@ -1236,17 +1349,17 @@
 </p>
 <dl>
 
-<dt><i>result</i></dt>
-<dd>
-number of test cases (0 = error) (integer)
-</dd>
-<dt><i>exceptionType</i></dt>
-<dd>
-exception type (string)
-</dd>
-<dt><i>exceptionValue</i></dt>
-<dd>
-exception message (string)
+<dt><i>result</i> (int)</dt>
+<dd>
+number of test cases (0 = error)
+</dd>
+<dt><i>exceptionType</i> (str)</dt>
+<dd>
+exception type
+</dd>
+<dt><i>exceptionValue</i> (str)</dt>
+<dd>
+exception message
 </dd>
 </dl>
 <a NAME="DebugServer.clientUtStartTest" ID="DebugServer.clientUtStartTest"></a>
@@ -1258,13 +1371,13 @@
 </p>
 <dl>
 
-<dt><i>testname</i></dt>
-<dd>
-name of the test (string)
-</dd>
-<dt><i>doc</i></dt>
-<dd>
-short description of the test (string)
+<dt><i>testname</i> (str)</dt>
+<dd>
+name of the test
+</dd>
+<dt><i>doc</i> (str)</dt>
+<dd>
+short description of the test
 </dd>
 </dl>
 <a NAME="DebugServer.clientUtStopTest" ID="DebugServer.clientUtStopTest"></a>
@@ -1283,17 +1396,17 @@
 </p>
 <dl>
 
-<dt><i>testname</i></dt>
-<dd>
-name of the test (string)
-</dd>
-<dt><i>traceback</i></dt>
-<dd>
-lines of traceback info (list of strings)
-</dd>
-<dt><i>testId</i></dt>
-<dd>
-id of the test (string)
+<dt><i>testname</i> (str)</dt>
+<dd>
+name of the test
+</dd>
+<dt><i>traceback</i> (list of str)</dt>
+<dd>
+lines of traceback info
+</dd>
+<dt><i>testId</i> (str)</dt>
+<dd>
+id of the test
 </dd>
 </dl>
 <a NAME="DebugServer.clientUtTestFailed" ID="DebugServer.clientUtTestFailed"></a>
@@ -1305,17 +1418,17 @@
 </p>
 <dl>
 
-<dt><i>testname</i></dt>
-<dd>
-name of the test (string)
-</dd>
-<dt><i>traceback</i></dt>
-<dd>
-lines of traceback info (list of strings)
-</dd>
-<dt><i>testId</i></dt>
-<dd>
-id of the test (string)
+<dt><i>testname</i> (str)</dt>
+<dd>
+name of the test
+</dd>
+<dt><i>traceback</i> (list of str)</dt>
+<dd>
+lines of traceback info
+</dd>
+<dt><i>testId</i> (str)</dt>
+<dd>
+id of the test
 </dd>
 </dl>
 <a NAME="DebugServer.clientUtTestFailedExpected" ID="DebugServer.clientUtTestFailedExpected"></a>
@@ -1327,17 +1440,17 @@
 </p>
 <dl>
 
-<dt><i>testname</i></dt>
-<dd>
-name of the test (string)
-</dd>
-<dt><i>traceback</i></dt>
-<dd>
-lines of traceback info (list of strings)
-</dd>
-<dt><i>testId</i></dt>
-<dd>
-id of the test (string)
+<dt><i>testname</i> (str)</dt>
+<dd>
+name of the test
+</dd>
+<dt><i>traceback</i> (list of str)</dt>
+<dd>
+lines of traceback info
+</dd>
+<dt><i>testId</i> (str)</dt>
+<dd>
+id of the test
 </dd>
 </dl>
 <a NAME="DebugServer.clientUtTestSkipped" ID="DebugServer.clientUtTestSkipped"></a>
@@ -1349,17 +1462,17 @@
 </p>
 <dl>
 
-<dt><i>testname</i></dt>
-<dd>
-name of the test (string)
-</dd>
-<dt><i>reason</i></dt>
-<dd>
-reason for skipping the test (string)
-</dd>
-<dt><i>testId</i></dt>
-<dd>
-id of the test (string)
+<dt><i>testname</i> (str)</dt>
+<dd>
+name of the test
+</dd>
+<dt><i>reason</i> (str)</dt>
+<dd>
+reason for skipping the test
+</dd>
+<dt><i>testId</i> (str)</dt>
+<dd>
+id of the test
 </dd>
 </dl>
 <a NAME="DebugServer.clientUtTestSucceededUnexpected" ID="DebugServer.clientUtTestSucceededUnexpected"></a>
@@ -1371,13 +1484,13 @@
 </p>
 <dl>
 
-<dt><i>testname</i></dt>
-<dd>
-name of the test (string)
-</dd>
-<dt><i>testId</i></dt>
-<dd>
-id of the test (string)
+<dt><i>testname</i> (str)</dt>
+<dd>
+name of the test
+</dd>
+<dt><i>testId</i> (str)</dt>
+<dd>
+id of the test
 </dd>
 </dl>
 <a NAME="DebugServer.getBreakPointModel" ID="DebugServer.getBreakPointModel"></a>
@@ -1390,7 +1503,13 @@
 <dl>
 <dt>Returns:</dt>
 <dd>
-reference to the breakpoint model object (BreakPointModel)
+reference to the breakpoint model object
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+BreakPointModel
 </dd>
 </dl>
 <a NAME="DebugServer.getClientCapabilities" ID="DebugServer.getClientCapabilities"></a>
@@ -1402,15 +1521,21 @@
 </p>
 <dl>
 
-<dt><i>clientType</i></dt>
-<dd>
-debug client type (string)
+<dt><i>clientType</i> (str)</dt>
+<dd>
+debug client type
 </dd>
 </dl>
 <dl>
 <dt>Returns:</dt>
 <dd>
-debug client capabilities (integer)
+debug client capabilities
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+int
 </dd>
 </dl>
 <a NAME="DebugServer.getClientInterpreter" ID="DebugServer.getClientInterpreter"></a>
@@ -1423,7 +1548,13 @@
 <dl>
 <dt>Returns:</dt>
 <dd>
-interpreter of the debug client (string)
+interpreter of the debug client
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="DebugServer.getClientType" ID="DebugServer.getClientType"></a>
@@ -1445,6 +1576,25 @@
 str
 </dd>
 </dl>
+<a NAME="DebugServer.getDebuggerIds" ID="DebugServer.getDebuggerIds"></a>
+<h4>DebugServer.getDebuggerIds</h4>
+<b>getDebuggerIds</b>(<i></i>)
+
+<p>
+        Public method to return the IDs of the connected debugger backends.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+list of connected debugger backend IDs
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
+</dd>
+</dl>
 <a NAME="DebugServer.getExtensions" ID="DebugServer.getExtensions"></a>
 <h4>DebugServer.getExtensions</h4>
 <b>getExtensions</b>(<i>language</i>)
@@ -1454,16 +1604,21 @@
 </p>
 <dl>
 
-<dt><i>language</i></dt>
-<dd>
-language to get extensions for (string)
+<dt><i>language</i> (str)</dt>
+<dd>
+language to get extensions for
 </dd>
 </dl>
 <dl>
 <dt>Returns:</dt>
 <dd>
 tuple of extensions associated with the language
-            (tuple of strings)
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of str
 </dd>
 </dl>
 <a NAME="DebugServer.getHostAddress" ID="DebugServer.getHostAddress"></a>
@@ -1476,16 +1631,21 @@
 </p>
 <dl>
 
-<dt><i>localhost</i></dt>
+<dt><i>localhost</i> (bool)</dt>
 <dd>
 flag indicating to return the address for localhost
-            (boolean)
 </dd>
 </dl>
 <dl>
 <dt>Returns:</dt>
 <dd>
-IP address or hostname (string)
+IP address or hostname
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="DebugServer.getSupportedLanguages" ID="DebugServer.getSupportedLanguages"></a>
@@ -1497,7 +1657,7 @@
 </p>
 <dl>
 
-<dt><i>shellOnly</i></dt>
+<dt><i>shellOnly</i> (bool)</dt>
 <dd>
 flag indicating only languages supporting an
             interactive shell should be returned
@@ -1506,7 +1666,13 @@
 <dl>
 <dt>Returns:</dt>
 <dd>
-list of supported languages (list of strings)
+list of supported languages
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl>
 <a NAME="DebugServer.getWatchPointModel" ID="DebugServer.getWatchPointModel"></a>
@@ -1520,7 +1686,26 @@
 <dt>Returns:</dt>
 <dd>
 reference to the watch expression model object
-            (WatchPointModel)
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+WatchPointModel
+</dd>
+</dl>
+<a NAME="DebugServer.initializeClient" ID="DebugServer.initializeClient"></a>
+<h4>DebugServer.initializeClient</h4>
+<b>initializeClient</b>(<i>debuggerId</i>)
+
+<p>
+        Public method to initialize a freshly connected debug client.
+</p>
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the connected debugger
 </dd>
 </dl>
 <a NAME="DebugServer.isClientProcessUp" ID="DebugServer.isClientProcessUp"></a>
@@ -1552,7 +1737,13 @@
 <dl>
 <dt>Returns:</dt>
 <dd>
-flag indicating a connection (boolean)
+flag indicating a connection
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
 </dd>
 </dl>
 <a NAME="DebugServer.isDebugging" ID="DebugServer.isDebugging"></a>
@@ -1574,22 +1765,34 @@
 bool
 </dd>
 </dl>
+<a NAME="DebugServer.masterClientConnected" ID="DebugServer.masterClientConnected"></a>
+<h4>DebugServer.masterClientConnected</h4>
+<b>masterClientConnected</b>(<i></i>)
+
+<p>
+        Public method to perform actions after the master client has finally
+        established the connection.
+</p>
 <a NAME="DebugServer.passiveStartUp" ID="DebugServer.passiveStartUp"></a>
 <h4>DebugServer.passiveStartUp</h4>
-<b>passiveStartUp</b>(<i>fn, exc</i>)
+<b>passiveStartUp</b>(<i>fn, exc, debuggerId</i>)
 
 <p>
         Public method to handle a passive debug connection.
 </p>
 <dl>
 
-<dt><i>fn</i></dt>
-<dd>
-filename of the debugged script (string)
-</dd>
-<dt><i>exc</i></dt>
-<dd>
-flag to enable exception reporting of the IDE (boolean)
+<dt><i>fn</i> (str)</dt>
+<dd>
+filename of the debugged script
+</dd>
+<dt><i>exc</i> (bool)</dt>
+<dd>
+flag to enable exception reporting of the IDE
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
 </dd>
 </dl>
 <a NAME="DebugServer.preferencesChanged" ID="DebugServer.preferencesChanged"></a>
@@ -1634,33 +1837,36 @@
 </p>
 <a NAME="DebugServer.remoteBreakpoint" ID="DebugServer.remoteBreakpoint"></a>
 <h4>DebugServer.remoteBreakpoint</h4>
-<b>remoteBreakpoint</b>(<i>fn, line, setBreakpoint, cond=None, temp=False</i>)
+<b>remoteBreakpoint</b>(<i>debuggerId, fn, line, setBreakpoint, cond=None, temp=False</i>)
 
 <p>
         Public method to set or clear a breakpoint.
 </p>
 <dl>
 
-<dt><i>fn</i></dt>
-<dd>
-filename the breakpoint belongs to (string)
-</dd>
-<dt><i>line</i></dt>
-<dd>
-linenumber of the breakpoint (int)
-</dd>
-<dt><i>setBreakpoint</i></dt>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>fn</i> (str)</dt>
+<dd>
+filename the breakpoint belongs to
+</dd>
+<dt><i>line</i> (int)</dt>
+<dd>
+linenumber of the breakpoint
+</dd>
+<dt><i>setBreakpoint</i> (bool)</dt>
 <dd>
 flag indicating setting or resetting a breakpoint
-            (boolean)
-</dd>
-<dt><i>cond</i></dt>
-<dd>
-condition of the breakpoint (string)
-</dd>
-<dt><i>temp</i></dt>
-<dd>
-flag indicating a temporary breakpoint (boolean)
+</dd>
+<dt><i>cond</i> (str)</dt>
+<dd>
+condition of the breakpoint
+</dd>
+<dt><i>temp</i> (bool)</dt>
+<dd>
+flag indicating a temporary breakpoint
 </dd>
 </dl>
 <a NAME="DebugServer.remoteCapabilities" ID="DebugServer.remoteCapabilities"></a>
@@ -1672,81 +1878,119 @@
 </p>
 <a NAME="DebugServer.remoteClientDisassembly" ID="DebugServer.remoteClientDisassembly"></a>
 <h4>DebugServer.remoteClientDisassembly</h4>
-<b>remoteClientDisassembly</b>(<i></i>)
+<b>remoteClientDisassembly</b>(<i>debuggerId</i>)
 
 <p>
         Public method to ask the client for the latest traceback disassembly.
 </p>
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+</dl>
 <a NAME="DebugServer.remoteClientSetFilter" ID="DebugServer.remoteClientSetFilter"></a>
 <h4>DebugServer.remoteClientSetFilter</h4>
-<b>remoteClientSetFilter</b>(<i>scope, filterStr</i>)
+<b>remoteClientSetFilter</b>(<i>debuggerId, scope, filterStr</i>)
 
 <p>
         Public method to set a variables filter list.
 </p>
 <dl>
 
-<dt><i>scope</i></dt>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>scope</i> (int)</dt>
 <dd>
 the scope of the variables (0 = local, 1 = global)
 </dd>
-<dt><i>filterStr</i></dt>
+<dt><i>filterStr</i> (str)</dt>
 <dd>
 regexp string for variable names to filter out
-            (string)
+</dd>
+</dl>
+<a NAME="DebugServer.remoteClientStack" ID="DebugServer.remoteClientStack"></a>
+<h4>DebugServer.remoteClientStack</h4>
+<b>remoteClientStack</b>(<i>debuggerId</i>)
+
+<p>
+        Public method to request the stack of the main thread.
+</p>
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
 </dd>
 </dl>
 <a NAME="DebugServer.remoteClientVariable" ID="DebugServer.remoteClientVariable"></a>
 <h4>DebugServer.remoteClientVariable</h4>
-<b>remoteClientVariable</b>(<i>scope, filterList, var, framenr=0</i>)
+<b>remoteClientVariable</b>(<i>debuggerId, scope, filterList, var, framenr=0, maxSize=0</i>)
 
 <p>
         Public method to request the variables of the debugged program.
 </p>
 <dl>
 
-<dt><i>scope</i></dt>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>scope</i> (int)</dt>
 <dd>
 the scope of the variables (0 = local, 1 = global)
 </dd>
-<dt><i>filterList</i></dt>
-<dd>
-list of variable types to filter out (list of int)
-</dd>
-<dt><i>var</i></dt>
-<dd>
-list encoded name of variable to retrieve (string)
-</dd>
-<dt><i>framenr</i></dt>
-<dd>
-framenumber of the variables to retrieve (int)
+<dt><i>filterList</i> (list of str)</dt>
+<dd>
+list of variable types to filter out
+</dd>
+<dt><i>var</i> (list of str)</dt>
+<dd>
+list encoded name of variable to retrieve
+</dd>
+<dt><i>framenr</i> (int)</dt>
+<dd>
+framenumber of the variables to retrieve
+</dd>
+<dt><i>maxSize</i> (int)</dt>
+<dd>
+maximum size the formatted value of a variable will
+            be shown. If it is bigger than that, a 'too big' indication will
+            be given (@@TOO_BIG_TO_SHOW@@).
 </dd>
 </dl>
 <a NAME="DebugServer.remoteClientVariables" ID="DebugServer.remoteClientVariables"></a>
 <h4>DebugServer.remoteClientVariables</h4>
-<b>remoteClientVariables</b>(<i>scope, filterList, framenr=0</i>)
+<b>remoteClientVariables</b>(<i>debuggerId, scope, filterList, framenr=0</i>)
 
 <p>
         Public method to request the variables of the debugged program.
 </p>
 <dl>
 
-<dt><i>scope</i></dt>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>scope</i> (int)</dt>
 <dd>
 the scope of the variables (0 = local, 1 = global)
 </dd>
-<dt><i>filterList</i></dt>
-<dd>
-list of variable types to filter out (list of int)
-</dd>
-<dt><i>framenr</i></dt>
-<dd>
-framenumber of the variables to retrieve (int)
+<dt><i>filterList</i> (list of str)</dt>
+<dd>
+list of variable types to filter out
+</dd>
+<dt><i>framenr</i> (int)</dt>
+<dd>
+framenumber of the variables to retrieve
 </dd>
 </dl>
 <a NAME="DebugServer.remoteCompletion" ID="DebugServer.remoteCompletion"></a>
 <h4>DebugServer.remoteCompletion</h4>
-<b>remoteCompletion</b>(<i>text</i>)
+<b>remoteCompletion</b>(<i>debuggerId, text</i>)
 
 <p>
         Public slot to get the a list of possible commandline completions
@@ -1754,20 +1998,28 @@
 </p>
 <dl>
 
-<dt><i>text</i></dt>
-<dd>
-the text to be completed (string)
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>text</i> (str)</dt>
+<dd>
+the text to be completed
 </dd>
 </dl>
 <a NAME="DebugServer.remoteContinue" ID="DebugServer.remoteContinue"></a>
 <h4>DebugServer.remoteContinue</h4>
-<b>remoteContinue</b>(<i>special=False</i>)
+<b>remoteContinue</b>(<i>debuggerId, special=False</i>)
 
 <p>
         Public method to continue the debugged program.
 </p>
 <dl>
 
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
 <dt><i>special</i></dt>
 <dd>
 flag indicating a special continue operation
@@ -1802,26 +2054,26 @@
 <dd>
 environment parameter settings
 </dd>
-<dt><i>autoClearShell=</i> (bool)</dt>
+<dt><i>autoClearShell</i> (bool)</dt>
 <dd>
 flag indicating, that the interpreter window
             should be cleared
 </dd>
-<dt><i>erase=</i> (bool)</dt>
+<dt><i>erase</i> (bool)</dt>
 <dd>
 flag indicating that coverage info should be
             cleared first
 </dd>
-<dt><i>forProject=</i> (bool)</dt>
+<dt><i>forProject</i> (bool)</dt>
 <dd>
 flag indicating a project related action
 </dd>
-<dt><i>runInConsole=</i> (bool)</dt>
+<dt><i>runInConsole</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
             console window
 </dd>
-<dt><i>clientType=</i> (str)</dt>
+<dt><i>clientType</i> (str)</dt>
 <dd>
 client type to be used
 </dd>
@@ -1835,14 +2087,14 @@
 </p>
 <dl>
 
-<dt><i>env</i></dt>
-<dd>
-environment settings (string)
+<dt><i>env</i> (str)</dt>
+<dd>
+environment settings
 </dd>
 </dl>
 <a NAME="DebugServer.remoteLoad" ID="DebugServer.remoteLoad"></a>
 <h4>DebugServer.remoteLoad</h4>
-<b>remoteLoad</b>(<i>venvName, fn, argv, wd, env, autoClearShell=True, tracePython=False, autoContinue=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType="", enableCallTrace=False</i>)
+<b>remoteLoad</b>(<i>venvName, fn, argv, wd, env, autoClearShell=True, tracePython=False, autoContinue=True, forProject=False, runInConsole=False, clientType="", enableCallTrace=False, enableMultiprocess=False, multiprocessNoDebug=""</i>)
 
 <p>
         Public method to load a new program to debug.
@@ -1869,58 +2121,64 @@
 <dd>
 environment parameter settings
 </dd>
-<dt><i>autoClearShell=</i> (bool)</dt>
+<dt><i>autoClearShell</i> (bool)</dt>
 <dd>
 flag indicating, that the interpreter window
             should be cleared
 </dd>
-<dt><i>tracePython=</i> (bool)</dt>
+<dt><i>tracePython</i> (bool)</dt>
 <dd>
 flag indicating if the Python library should be
             traced as well
 </dd>
-<dt><i>autoContinue=</i> (bool)</dt>
+<dt><i>autoContinue</i> (bool)</dt>
 <dd>
 flag indicating, that the debugger should not
             stop at the first executable line
 </dd>
-<dt><i>forProject=</i> (bool)</dt>
+<dt><i>forProject</i> (bool)</dt>
 <dd>
 flag indicating a project related action
 </dd>
-<dt><i>runInConsole=</i> (bool)</dt>
+<dt><i>runInConsole</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
             console window
 </dd>
-<dt><i>autoFork=</i> (bool)</dt>
-<dd>
-flag indicating the automatic fork mode
-</dd>
-<dt><i>forkChild=</i> (bool)</dt>
-<dd>
-flag indicating to debug the child after forking
-</dd>
-<dt><i>clientType=</i> (str)</dt>
+<dt><i>clientType</i> (str)</dt>
 <dd>
 client type to be used
 </dd>
-<dt><i>enableCallTrace=</i> (bool)</dt>
+<dt><i>enableCallTrace</i> (bool)</dt>
 <dd>
 flag indicating to enable the call trace
             function
 </dd>
+<dt><i>enableMultiprocess</i> (bool)</dt>
+<dd>
+flag indicating to perform multiprocess
+            debugging
+</dd>
+<dt><i>multiprocessNoDebug</i> (str)</dt>
+<dd>
+space separated list of programs not to be
+            debugged
+</dd>
 </dl>
 <a NAME="DebugServer.remoteMoveIP" ID="DebugServer.remoteMoveIP"></a>
 <h4>DebugServer.remoteMoveIP</h4>
-<b>remoteMoveIP</b>(<i>line</i>)
+<b>remoteMoveIP</b>(<i>debuggerId, line</i>)
 
 <p>
         Public method to move the instruction pointer to a different line.
 </p>
 <dl>
 
-<dt><i>line</i></dt>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>line</i> (int)</dt>
 <dd>
 the new line, where execution should be continued
 </dd>
@@ -1954,47 +2212,51 @@
 <dd>
 environment parameter settings
 </dd>
-<dt><i>autoClearShell=</i> (bool)</dt>
+<dt><i>autoClearShell</i> (bool)</dt>
 <dd>
 flag indicating, that the interpreter window
             should be cleared
 </dd>
-<dt><i>erase=</i> (bool)</dt>
+<dt><i>erase</i> (bool)</dt>
 <dd>
 flag indicating that coverage info should be
             cleared first
 </dd>
-<dt><i>forProject=</i> (bool)</dt>
+<dt><i>forProject</i> (bool)</dt>
 <dd>
 flag indicating a project related action
 </dd>
-<dt><i>runInConsole=</i> (bool)</dt>
+<dt><i>runInConsole</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
             console window
 </dd>
-<dt><i>clientType=</i> (str)</dt>
+<dt><i>clientType</i> (str)</dt>
 <dd>
 client type to be used
 </dd>
 </dl>
 <a NAME="DebugServer.remoteRawInput" ID="DebugServer.remoteRawInput"></a>
 <h4>DebugServer.remoteRawInput</h4>
-<b>remoteRawInput</b>(<i>s</i>)
+<b>remoteRawInput</b>(<i>debuggerId, inputString</i>)
 
 <p>
         Public method to send the raw input to the debugged program.
 </p>
 <dl>
 
-<dt><i>s</i></dt>
-<dd>
-the raw input (string)
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>inputString</i> (str)</dt>
+<dd>
+the raw input
 </dd>
 </dl>
 <a NAME="DebugServer.remoteRun" ID="DebugServer.remoteRun"></a>
 <h4>DebugServer.remoteRun</h4>
-<b>remoteRun</b>(<i>venvName, fn, argv, wd, env, autoClearShell=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType=""</i>)
+<b>remoteRun</b>(<i>venvName, fn, argv, wd, env, autoClearShell=True, forProject=False, runInConsole=False, clientType=""</i>)
 
 <p>
         Public method to load a new program to run.
@@ -2021,97 +2283,131 @@
 <dd>
 environment parameter settings
 </dd>
-<dt><i>autoClearShell=</i> (bool)</dt>
+<dt><i>autoClearShell</i> (bool)</dt>
 <dd>
 flag indicating, that the interpreter window
             should be cleared
 </dd>
-<dt><i>forProject=</i> (bool)</dt>
+<dt><i>forProject</i> (bool)</dt>
 <dd>
 flag indicating a project related action
 </dd>
-<dt><i>runInConsole=</i> (bool)</dt>
+<dt><i>runInConsole</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
             console window
 </dd>
-<dt><i>autoFork=</i> (bool)</dt>
-<dd>
-flag indicating the automatic fork mode
-</dd>
-<dt><i>forkChild=</i> (bool)</dt>
-<dd>
-flag indicating to debug the child after forking
-</dd>
-<dt><i>clientType=</i> (str)</dt>
+<dt><i>clientType</i> (str)</dt>
 <dd>
 client type to be used
 </dd>
 </dl>
 <a NAME="DebugServer.remoteSetThread" ID="DebugServer.remoteSetThread"></a>
 <h4>DebugServer.remoteSetThread</h4>
-<b>remoteSetThread</b>(<i>tid</i>)
+<b>remoteSetThread</b>(<i>debuggerId, tid</i>)
 
 <p>
         Public method to request to set the given thread as current thread.
 </p>
 <dl>
 
-<dt><i>tid</i></dt>
-<dd>
-id of the thread (integer)
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>tid</i> (int)</dt>
+<dd>
+id of the thread
 </dd>
 </dl>
 <a NAME="DebugServer.remoteStatement" ID="DebugServer.remoteStatement"></a>
 <h4>DebugServer.remoteStatement</h4>
-<b>remoteStatement</b>(<i>stmt</i>)
+<b>remoteStatement</b>(<i>debuggerId, stmt</i>)
 
 <p>
         Public method to execute a Python statement.
 </p>
 <dl>
 
-<dt><i>stmt</i></dt>
-<dd>
-the Python statement to execute (string). It
-              should not have a trailing newline.
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>stmt</i> (str)</dt>
+<dd>
+the Python statement to execute.
 </dd>
 </dl>
 <a NAME="DebugServer.remoteStep" ID="DebugServer.remoteStep"></a>
 <h4>DebugServer.remoteStep</h4>
-<b>remoteStep</b>(<i></i>)
+<b>remoteStep</b>(<i>debuggerId</i>)
 
 <p>
         Public method to single step the debugged program.
 </p>
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+</dl>
 <a NAME="DebugServer.remoteStepOut" ID="DebugServer.remoteStepOut"></a>
 <h4>DebugServer.remoteStepOut</h4>
-<b>remoteStepOut</b>(<i></i>)
+<b>remoteStepOut</b>(<i>debuggerId</i>)
 
 <p>
         Public method to step out the debugged program.
 </p>
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+</dl>
 <a NAME="DebugServer.remoteStepOver" ID="DebugServer.remoteStepOver"></a>
 <h4>DebugServer.remoteStepOver</h4>
-<b>remoteStepOver</b>(<i></i>)
+<b>remoteStepOver</b>(<i>debuggerId</i>)
 
 <p>
         Public method to step over the debugged program.
 </p>
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+</dl>
 <a NAME="DebugServer.remoteStepQuit" ID="DebugServer.remoteStepQuit"></a>
 <h4>DebugServer.remoteStepQuit</h4>
-<b>remoteStepQuit</b>(<i></i>)
+<b>remoteStepQuit</b>(<i>debuggerId</i>)
 
 <p>
         Public method to stop the debugged program.
 </p>
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+</dl>
 <a NAME="DebugServer.remoteThreadList" ID="DebugServer.remoteThreadList"></a>
 <h4>DebugServer.remoteThreadList</h4>
-<b>remoteThreadList</b>(<i></i>)
+<b>remoteThreadList</b>(<i>debuggerId</i>)
 
 <p>
         Public method to request the list of threads from the client.
 </p>
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+</dl>
 <a NAME="DebugServer.remoteUTDiscover" ID="DebugServer.remoteUTDiscover"></a>
 <h4>DebugServer.remoteUTDiscover</h4>
 <b>remoteUTDiscover</b>(<i>clientType, forProject, venvName, syspath, workdir, discoveryStart</i>)
@@ -2250,16 +2546,20 @@
 </p>
 <a NAME="DebugServer.setCallTraceEnabled" ID="DebugServer.setCallTraceEnabled"></a>
 <h4>DebugServer.setCallTraceEnabled</h4>
-<b>setCallTraceEnabled</b>(<i>on</i>)
+<b>setCallTraceEnabled</b>(<i>debuggerId, on</i>)
 
 <p>
         Public method to set the call trace state.
 </p>
 <dl>
 
-<dt><i>on</i></dt>
-<dd>
-flag indicating to enable the call trace function (boolean)
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>on</i> (bool)</dt>
+<dd>
+flag indicating to enable the call trace function
 </dd>
 </dl>
 <a NAME="DebugServer.setDebugging" ID="DebugServer.setDebugging"></a>
@@ -2289,7 +2589,7 @@
 </p>
 <a NAME="DebugServer.signalClientBanner" ID="DebugServer.signalClientBanner"></a>
 <h4>DebugServer.signalClientBanner</h4>
-<b>signalClientBanner</b>(<i>version, platform, debugClient, venvName</i>)
+<b>signalClientBanner</b>(<i>version, platform, venvName</i>)
 
 <p>
         Public method to process the client banner info.
@@ -2304,10 +2604,6 @@
 <dd>
 hostname of the client
 </dd>
-<dt><i>debugClient</i> (str)</dt>
-<dd>
-additional debugger type info
-</dd>
 <dt><i>venvName</i> (str)</dt>
 <dd>
 name of the virtual environment
@@ -2315,58 +2611,66 @@
 </dl>
 <a NAME="DebugServer.signalClientBreakConditionError" ID="DebugServer.signalClientBreakConditionError"></a>
 <h4>DebugServer.signalClientBreakConditionError</h4>
-<b>signalClientBreakConditionError</b>(<i>filename, lineno</i>)
+<b>signalClientBreakConditionError</b>(<i>filename, lineno, debuggerId</i>)
 
 <p>
         Public method to process the client breakpoint condition error info.
 </p>
 <dl>
 
-<dt><i>filename</i></dt>
-<dd>
-filename of the breakpoint (string)
-</dd>
-<dt><i>lineno</i></dt>
-<dd>
-line umber of the breakpoint (integer)
+<dt><i>filename</i> (str)</dt>
+<dd>
+filename of the breakpoint
+</dd>
+<dt><i>lineno</i> (int)</dt>
+<dd>
+line umber of the breakpoint
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
 </dd>
 </dl>
 <a NAME="DebugServer.signalClientCallTrace" ID="DebugServer.signalClientCallTrace"></a>
 <h4>DebugServer.signalClientCallTrace</h4>
-<b>signalClientCallTrace</b>(<i>isCall, fromFile, fromLine, fromFunction, toFile, toLine, toFunction</i>)
+<b>signalClientCallTrace</b>(<i>isCall, fromFile, fromLine, fromFunction, toFile, toLine, toFunction, debuggerId</i>)
 
 <p>
         Public method to process the client call trace data.
 </p>
 <dl>
 
-<dt><i>isCall</i></dt>
-<dd>
-flag indicating a 'call' (boolean)
-</dd>
-<dt><i>fromFile</i></dt>
-<dd>
-name of the originating file (string)
-</dd>
-<dt><i>fromLine</i></dt>
-<dd>
-line number in the originating file (string)
-</dd>
-<dt><i>fromFunction</i></dt>
-<dd>
-name of the originating function (string)
-</dd>
-<dt><i>toFile</i></dt>
-<dd>
-name of the target file (string)
-</dd>
-<dt><i>toLine</i></dt>
-<dd>
-line number in the target file (string)
-</dd>
-<dt><i>toFunction</i></dt>
-<dd>
-name of the target function (string)
+<dt><i>isCall</i> (bool)</dt>
+<dd>
+flag indicating a 'call'
+</dd>
+<dt><i>fromFile</i> (str)</dt>
+<dd>
+name of the originating file
+</dd>
+<dt><i>fromLine</i> (str)</dt>
+<dd>
+line number in the originating file
+</dd>
+<dt><i>fromFunction</i> (str)</dt>
+<dd>
+name of the originating function
+</dd>
+<dt><i>toFile</i> (str)</dt>
+<dd>
+name of the target file
+</dd>
+<dt><i>toLine</i> (str)</dt>
+<dd>
+line number in the target file
+</dd>
+<dt><i>toFunction</i> (str)</dt>
+<dd>
+name of the target function
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
 </dd>
 </dl>
 <a NAME="DebugServer.signalClientCapabilities" ID="DebugServer.signalClientCapabilities"></a>
@@ -2393,57 +2697,86 @@
 </dl>
 <a NAME="DebugServer.signalClientClearBreak" ID="DebugServer.signalClientClearBreak"></a>
 <h4>DebugServer.signalClientClearBreak</h4>
-<b>signalClientClearBreak</b>(<i>filename, lineno</i>)
+<b>signalClientClearBreak</b>(<i>filename, lineno, debuggerId</i>)
 
 <p>
         Public method to process the client clear breakpoint command.
 </p>
 <dl>
 
-<dt><i>filename</i></dt>
-<dd>
-filename of the breakpoint (string)
-</dd>
-<dt><i>lineno</i></dt>
-<dd>
-line umber of the breakpoint (integer)
+<dt><i>filename</i> (str)</dt>
+<dd>
+filename of the breakpoint
+</dd>
+<dt><i>lineno</i> (int)</dt>
+<dd>
+line umber of the breakpoint
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
 </dd>
 </dl>
 <a NAME="DebugServer.signalClientClearWatch" ID="DebugServer.signalClientClearWatch"></a>
 <h4>DebugServer.signalClientClearWatch</h4>
-<b>signalClientClearWatch</b>(<i>condition</i>)
+<b>signalClientClearWatch</b>(<i>condition, debuggerId</i>)
 
 <p>
         Public slot to handle the clientClearWatch signal.
 </p>
 <dl>
 
-<dt><i>condition</i></dt>
-<dd>
-expression of watch expression to clear (string)
+<dt><i>condition</i> (str)</dt>
+<dd>
+expression of watch expression to clear
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
 </dd>
 </dl>
 <a NAME="DebugServer.signalClientCompletionList" ID="DebugServer.signalClientCompletionList"></a>
 <h4>DebugServer.signalClientCompletionList</h4>
-<b>signalClientCompletionList</b>(<i>completionList, text</i>)
+<b>signalClientCompletionList</b>(<i>completionList, text, debuggerId</i>)
 
 <p>
         Public method to process the client auto completion info.
 </p>
 <dl>
 
-<dt><i>completionList</i></dt>
-<dd>
-list of possible completions (list of strings)
-</dd>
-<dt><i>text</i></dt>
-<dd>
-the text to be completed (string)
+<dt><i>completionList</i> (list of str)</dt>
+<dd>
+list of possible completions
+</dd>
+<dt><i>text</i> (str)</dt>
+<dd>
+the text to be completed
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+</dl>
+<a NAME="DebugServer.signalClientDebuggerId" ID="DebugServer.signalClientDebuggerId"></a>
+<h4>DebugServer.signalClientDebuggerId</h4>
+<b>signalClientDebuggerId</b>(<i>debuggerId</i>)
+
+<p>
+        Public method to signal the receipt of a new debugger ID.
+</p>
+<p>
+        This signal indicates, that a new debugger backend has connected.
+</p>
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the newly connected debugger backend
 </dd>
 </dl>
 <a NAME="DebugServer.signalClientDisassembly" ID="DebugServer.signalClientDisassembly"></a>
 <h4>DebugServer.signalClientDisassembly</h4>
-<b>signalClientDisassembly</b>(<i>disassembly</i>)
+<b>signalClientDisassembly</b>(<i>disassembly, debuggerId</i>)
 
 <p>
         Public method to process the disassembly info from the client.
@@ -2454,40 +2787,52 @@
 <dd>
 dictionary containing the disassembly information
 </dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
 </dl>
 <a NAME="DebugServer.signalClientException" ID="DebugServer.signalClientException"></a>
 <h4>DebugServer.signalClientException</h4>
-<b>signalClientException</b>(<i>exceptionType, exceptionMessage, stackTrace</i>)
+<b>signalClientException</b>(<i>exceptionType, exceptionMessage, stackTrace, debuggerId</i>)
 
 <p>
         Public method to process the exception info from the client.
 </p>
 <dl>
 
-<dt><i>exceptionType</i></dt>
-<dd>
-type of exception raised (string)
-</dd>
-<dt><i>exceptionMessage</i></dt>
-<dd>
-message given by the exception (string)
-</dd>
-<dt><i>stackTrace</i></dt>
+<dt><i>exceptionType</i> (str)</dt>
+<dd>
+type of exception raised
+</dd>
+<dt><i>exceptionMessage</i> (str)</dt>
+<dd>
+message given by the exception
+</dd>
+<dt><i>stackTrace</i> (list)</dt>
 <dd>
 list of stack entries with the exception position
             first. Each stack entry is a list giving the filename and the
             linenumber.
 </dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
 </dl>
 <a NAME="DebugServer.signalClientExit" ID="DebugServer.signalClientExit"></a>
 <h4>DebugServer.signalClientExit</h4>
-<b>signalClientExit</b>(<i>status, message=""</i>)
+<b>signalClientExit</b>(<i>program, status, message, debuggerId</i>)
 
 <p>
         Public method to process the client exit status.
 </p>
 <dl>
 
+<dt><i>program</i> (str)</dt>
+<dd>
+name of the exited program
+</dd>
 <dt><i>status</i> (int)</dt>
 <dd>
 exit code
@@ -2496,64 +2841,80 @@
 <dd>
 message sent with the exit
 </dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
 </dl>
 <a NAME="DebugServer.signalClientLine" ID="DebugServer.signalClientLine"></a>
 <h4>DebugServer.signalClientLine</h4>
-<b>signalClientLine</b>(<i>filename, lineno, forStack=False</i>)
+<b>signalClientLine</b>(<i>filename, lineno, debuggerId, forStack=False</i>)
 
 <p>
         Public method to process client position feedback.
 </p>
 <dl>
 
-<dt><i>filename</i></dt>
-<dd>
-name of the file currently being executed (string)
-</dd>
-<dt><i>lineno</i></dt>
-<dd>
-line of code currently being executed (integer)
-</dd>
-<dt><i>forStack</i></dt>
-<dd>
-flag indicating this is for a stack dump (boolean)
+<dt><i>filename</i> (str)</dt>
+<dd>
+name of the file currently being executed
+</dd>
+<dt><i>lineno</i> (int)</dt>
+<dd>
+line of code currently being executed
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+<dt><i>forStack</i> (bool)</dt>
+<dd>
+flag indicating this is for a stack dump
 </dd>
 </dl>
 <a NAME="DebugServer.signalClientOutput" ID="DebugServer.signalClientOutput"></a>
 <h4>DebugServer.signalClientOutput</h4>
-<b>signalClientOutput</b>(<i>line</i>)
+<b>signalClientOutput</b>(<i>line, debuggerId</i>)
 
 <p>
         Public method to process a line of client output.
 </p>
 <dl>
 
-<dt><i>line</i></dt>
-<dd>
-client output (string)
+<dt><i>line</i> (str)</dt>
+<dd>
+client output
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
 </dd>
 </dl>
 <a NAME="DebugServer.signalClientRawInput" ID="DebugServer.signalClientRawInput"></a>
 <h4>DebugServer.signalClientRawInput</h4>
-<b>signalClientRawInput</b>(<i>prompt, echo</i>)
+<b>signalClientRawInput</b>(<i>prompt, echo, debuggerId</i>)
 
 <p>
         Public method to process the client raw input command.
 </p>
 <dl>
 
-<dt><i>prompt</i></dt>
-<dd>
-the input prompt (string)
-</dd>
-<dt><i>echo</i></dt>
-<dd>
-flag indicating an echoing of the input (boolean)
+<dt><i>prompt</i> (str)</dt>
+<dd>
+the input prompt
+</dd>
+<dt><i>echo</i> (bool)</dt>
+<dd>
+flag indicating an echoing of the input
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
 </dd>
 </dl>
 <a NAME="DebugServer.signalClientSignal" ID="DebugServer.signalClientSignal"></a>
 <h4>DebugServer.signalClientSignal</h4>
-<b>signalClientSignal</b>(<i>message, filename, lineNo, funcName, funcArgs</i>)
+<b>signalClientSignal</b>(<i>message, filename, lineNo, funcName, funcArgs, debuggerId</i>)
 
 <p>
         Public method to process a signal generated on the client side.
@@ -2580,142 +2941,185 @@
 <dd>
 function arguments
 </dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
 </dl>
 <a NAME="DebugServer.signalClientStack" ID="DebugServer.signalClientStack"></a>
 <h4>DebugServer.signalClientStack</h4>
-<b>signalClientStack</b>(<i>stack</i>)
+<b>signalClientStack</b>(<i>stack, debuggerId</i>)
 
 <p>
         Public method to process a client's stack information.
 </p>
 <dl>
 
-<dt><i>stack</i></dt>
+<dt><i>stack</i> (list of lists of (string, integer, string))</dt>
 <dd>
 list of stack entries. Each entry is a tuple of three
             values giving the filename, linenumber and method
-            (list of lists of (string, integer, string))
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
 </dd>
 </dl>
 <a NAME="DebugServer.signalClientStatement" ID="DebugServer.signalClientStatement"></a>
 <h4>DebugServer.signalClientStatement</h4>
-<b>signalClientStatement</b>(<i>more</i>)
+<b>signalClientStatement</b>(<i>more, debuggerId</i>)
 
 <p>
         Public method to process the input response from the client.
 </p>
 <dl>
 
-<dt><i>more</i></dt>
+<dt><i>more</i> (bool)</dt>
 <dd>
 flag indicating that more user input is required
 </dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
 </dl>
 <a NAME="DebugServer.signalClientSyntaxError" ID="DebugServer.signalClientSyntaxError"></a>
 <h4>DebugServer.signalClientSyntaxError</h4>
-<b>signalClientSyntaxError</b>(<i>message, filename, lineNo, characterNo</i>)
+<b>signalClientSyntaxError</b>(<i>message, filename, lineNo, characterNo, debuggerId</i>)
 
 <p>
-        Public method to process the syntax error info from the client.
+        Public method to process a syntax error info from the client.
 </p>
 <dl>
 
-<dt><i>message</i></dt>
-<dd>
-message of the syntax error (string)
-</dd>
-<dt><i>filename</i></dt>
+<dt><i>message</i> (str)</dt>
+<dd>
+message of the syntax error
+</dd>
+<dt><i>filename</i> (str)</dt>
 <dd>
 translated filename of the syntax error position
-            (string)
-</dd>
-<dt><i>lineNo</i></dt>
-<dd>
-line number of the syntax error position (integer)
-</dd>
-<dt><i>characterNo</i></dt>
+</dd>
+<dt><i>lineNo</i> (int)</dt>
+<dd>
+line number of the syntax error position
+</dd>
+<dt><i>characterNo</i> (int)</dt>
 <dd>
 character number of the syntax error position
-            (integer)
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
 </dd>
 </dl>
 <a NAME="DebugServer.signalClientThreadList" ID="DebugServer.signalClientThreadList"></a>
 <h4>DebugServer.signalClientThreadList</h4>
-<b>signalClientThreadList</b>(<i>currentId, threadList</i>)
+<b>signalClientThreadList</b>(<i>currentId, threadList, debuggerId</i>)
 
 <p>
         Public method to process the client thread list info.
 </p>
 <dl>
 
-<dt><i>currentId</i></dt>
-<dd>
-id of the current thread (integer)
-</dd>
-<dt><i>threadList</i></dt>
+<dt><i>currentId</i> (int)</dt>
+<dd>
+id of the current thread
+</dd>
+<dt><i>threadList</i> (list of dict)</dt>
 <dd>
 list of dictionaries containing the thread data
 </dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
 </dl>
 <a NAME="DebugServer.signalClientThreadSet" ID="DebugServer.signalClientThreadSet"></a>
 <h4>DebugServer.signalClientThreadSet</h4>
-<b>signalClientThreadSet</b>(<i></i>)
+<b>signalClientThreadSet</b>(<i>debuggerId</i>)
 
 <p>
         Public method to handle the change of the client thread.
 </p>
+<dl>
+
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
+</dl>
 <a NAME="DebugServer.signalClientVariable" ID="DebugServer.signalClientVariable"></a>
 <h4>DebugServer.signalClientVariable</h4>
-<b>signalClientVariable</b>(<i>scope, variables</i>)
+<b>signalClientVariable</b>(<i>scope, variables, debuggerId</i>)
 
 <p>
         Public method to process the client variable info.
 </p>
 <dl>
 
-<dt><i>scope</i></dt>
+<dt><i>scope</i> (int)</dt>
 <dd>
 scope of the variables (-1 = empty global, 1 = global,
             0 = local)
 </dd>
-<dt><i>variables</i></dt>
+<dt><i>variables</i> (list)</dt>
 <dd>
 the list of members of a classvariable from the client
 </dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
 </dl>
 <a NAME="DebugServer.signalClientVariables" ID="DebugServer.signalClientVariables"></a>
 <h4>DebugServer.signalClientVariables</h4>
-<b>signalClientVariables</b>(<i>scope, variables</i>)
+<b>signalClientVariables</b>(<i>scope, variables, debuggerId</i>)
 
 <p>
         Public method to process the client variables info.
 </p>
 <dl>
 
-<dt><i>scope</i></dt>
+<dt><i>scope</i> (int)</dt>
 <dd>
 scope of the variables (-1 = empty global, 1 = global,
             0 = local)
 </dd>
-<dt><i>variables</i></dt>
+<dt><i>variables</i> (list)</dt>
 <dd>
 the list of variables from the client
 </dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
+</dd>
 </dl>
 <a NAME="DebugServer.signalClientWatchConditionError" ID="DebugServer.signalClientWatchConditionError"></a>
 <h4>DebugServer.signalClientWatchConditionError</h4>
-<b>signalClientWatchConditionError</b>(<i>condition</i>)
+<b>signalClientWatchConditionError</b>(<i>condition, debuggerId</i>)
 
 <p>
         Public method to process the client watch expression error info.
 </p>
 <dl>
 
-<dt><i>condition</i></dt>
-<dd>
-expression of watch expression to clear (string)
+<dt><i>condition</i> (str)</dt>
+<dd>
+expression of watch expression to clear
+</dd>
+<dt><i>debuggerId</i> (str)</dt>
+<dd>
+ID of the debugger backend
 </dd>
 </dl>
+<a NAME="DebugServer.signalLastClientExited" ID="DebugServer.signalLastClientExited"></a>
+<h4>DebugServer.signalLastClientExited</h4>
+<b>signalLastClientExited</b>(<i></i>)
+
+<p>
+        Public method to process the last client exit event.
+</p>
 <a NAME="DebugServer.startClient" ID="DebugServer.startClient"></a>
 <h4>DebugServer.startClient</h4>
 <b>startClient</b>(<i>unplanned=True, clType=None, forProject=False, runInConsole=False, venvName="", workingDir=None</i>)
@@ -2725,28 +3129,28 @@
 </p>
 <dl>
 
-<dt><i>unplanned=</i> (bool)</dt>
+<dt><i>unplanned</i> (bool)</dt>
 <dd>
 flag indicating that the client has died
 </dd>
-<dt><i>clType=</i> (str)</dt>
+<dt><i>clType</i> (str)</dt>
 <dd>
 type of client to be started
 </dd>
-<dt><i>forProject=</i> (bool)</dt>
+<dt><i>forProject</i> (bool)</dt>
 <dd>
 flag indicating a project related action
 </dd>
-<dt><i>runInConsole=</i> (bool)</dt>
+<dt><i>runInConsole</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
             console window
 </dd>
-<dt><i>venvName=</i> (str)</dt>
+<dt><i>venvName</i> (str)</dt>
 <dd>
 name of the virtual environment to be used
 </dd>
-<dt><i>workingDir=</i> (str)</dt>
+<dt><i>workingDir</i> (str)</dt>
 <dd>
 directory to start the debugger client in
 </dd>

eric ide

mercurial