Updated the source documentation.

Thu, 17 Dec 2020 17:36:54 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 17 Dec 2020 17:36:54 +0100
changeset 7890
c7b98271f551
parent 7889
c6af59ed8c17
child 7891
7314fdc2f8be

Updated the source documentation.

eric6/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.DebugClients.Python.ModuleLoader.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.DebugClients.Python.MultiProcessDebugExtension.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.DebugClients.Python.MultiprocessingExtension.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.DebugClients.Python.QProcessExtension.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.DebugClients.Python.SubprocessExtension.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Debugger.DebugServer.html file | annotate | diff | comparison | revisions
Binary file eric6/Documentation/Help/source.qch has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Documentation/Source/eric6.DebugClients.Python.ModuleLoader.html	Thu Dec 17 17:36:54 2020 +0100
@@ -0,0 +1,279 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.DebugClients.Python.ModuleLoader</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>eric6.DebugClients.Python.ModuleLoader</h1>
+
+<p>
+Module implementing an import hook patching modules to support debugging.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#ModuleLoader">ModuleLoader</a></td>
+<td>Class implementing an import hook patching modules to support debugging.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr />
+<hr />
+<a NAME="ModuleLoader" ID="ModuleLoader"></a>
+<h2>ModuleLoader</h2>
+
+<p>
+    Class implementing an import hook patching modules to support debugging.
+</p>
+<h3>Derived from</h3>
+object
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#ModuleLoader.__init__">ModuleLoader</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#ModuleLoader.__loadModule">__loadModule</a></td>
+<td>Private method to load a module.</td>
+</tr>
+<tr>
+<td><a href="#ModuleLoader.create_module">create_module</a></td>
+<td>Public method to create a module based on the passed in spec.</td>
+</tr>
+<tr>
+<td><a href="#ModuleLoader.exec_module">exec_module</a></td>
+<td>Public method to execute the created module.</td>
+</tr>
+<tr>
+<td><a href="#ModuleLoader.find_module">find_module</a></td>
+<td>Public method returning the module loader.</td>
+</tr>
+<tr>
+<td><a href="#ModuleLoader.find_spec">find_spec</a></td>
+<td>Public method returning the module spec.</td>
+</tr>
+<tr>
+<td><a href="#ModuleLoader.load_module">load_module</a></td>
+<td>Public method to load a module.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="ModuleLoader.__init__" ID="ModuleLoader.__init__"></a>
+<h4>ModuleLoader (Constructor)</h4>
+<b>ModuleLoader</b>(<i>debugClient</i>)
+
+<p>
+        Constructor
+</p>
+<dl>
+
+<dt><i>debugClient</i> (DebugClient)</dt>
+<dd>
+reference to the debug client object
+</dd>
+</dl>
+<a NAME="ModuleLoader.__loadModule" ID="ModuleLoader.__loadModule"></a>
+<h4>ModuleLoader.__loadModule</h4>
+<b>__loadModule</b>(<i>fullname</i>)
+
+<p>
+        Private method to load a module.
+</p>
+<dl>
+
+<dt><i>fullname</i> (str)</dt>
+<dd>
+name of the module to be loaded
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+reference to the loaded module
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+module
+</dd>
+</dl>
+<a NAME="ModuleLoader.create_module" ID="ModuleLoader.create_module"></a>
+<h4>ModuleLoader.create_module</h4>
+<b>create_module</b>(<i>spec</i>)
+
+<p>
+            Public method to create a module based on the passed in spec.
+</p>
+<dl>
+
+<dt><i>spec</i> (ModuleSpec)</dt>
+<dd>
+module spec object for loading the module
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+created and patched module
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+module
+</dd>
+</dl>
+<a NAME="ModuleLoader.exec_module" ID="ModuleLoader.exec_module"></a>
+<h4>ModuleLoader.exec_module</h4>
+<b>exec_module</b>(<i>module</i>)
+
+<p>
+            Public method to execute the created module.
+</p>
+<dl>
+
+<dt><i>module</i> (module)</dt>
+<dd>
+module to be executed
+</dd>
+</dl>
+<a NAME="ModuleLoader.find_module" ID="ModuleLoader.find_module"></a>
+<h4>ModuleLoader.find_module</h4>
+<b>find_module</b>(<i>fullname, path=None</i>)
+
+<p>
+            Public method returning the module loader.
+</p>
+<dl>
+
+<dt><i>fullname</i> (str)</dt>
+<dd>
+name of the module to be loaded
+</dd>
+<dt><i>path</i> (str)</dt>
+<dd>
+path to resolve the module name
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+module loader object
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+object
+</dd>
+</dl>
+<a NAME="ModuleLoader.find_spec" ID="ModuleLoader.find_spec"></a>
+<h4>ModuleLoader.find_spec</h4>
+<b>find_spec</b>(<i>fullname, path, target=None</i>)
+
+<p>
+            Public method returning the module spec.
+</p>
+<dl>
+
+<dt><i>fullname</i> (str)</dt>
+<dd>
+name of the module to be loaded
+</dd>
+<dt><i>path</i> (str)</dt>
+<dd>
+path to resolve the module name
+</dd>
+<dt><i>target</i> (module)</dt>
+<dd>
+module object to use for a more educated guess
+                about what spec to return
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+module spec object pointing to the module loader
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+ModuleSpec
+</dd>
+</dl>
+<a NAME="ModuleLoader.load_module" ID="ModuleLoader.load_module"></a>
+<h4>ModuleLoader.load_module</h4>
+<b>load_module</b>(<i>fullname</i>)
+
+<p>
+            Public method to load a module.
+</p>
+<dl>
+
+<dt><i>fullname</i> (str)</dt>
+<dd>
+name of the module to be loaded
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+reference to the loaded module
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+module
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Documentation/Source/eric6.DebugClients.Python.MultiProcessDebugExtension.html	Thu Dec 17 17:36:54 2020 +0100
@@ -0,0 +1,656 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.DebugClients.Python.MultiProcessDebugExtension</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>eric6.DebugClients.Python.MultiProcessDebugExtension</h1>
+
+<p>
+Module implementing a function to patch the process creation functions to
+support multiprocess debugging.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>_debugClient</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+
+<tr>
+<td><a href="#_shallPatch">_shallPatch</a></td>
+<td>Function to determine, if the multiprocessing patches should be done.</td>
+</tr>
+<tr>
+<td><a href="#createCreateProcess">createCreateProcess</a></td>
+<td>Function to patch the 'CreateProcess' process creation function of Windows.</td>
+</tr>
+<tr>
+<td><a href="#createExecl">createExecl</a></td>
+<td>Function to patch the 'execl' process creation functions.</td>
+</tr>
+<tr>
+<td><a href="#createExecv">createExecv</a></td>
+<td>Function to patch the 'execv' process creation functions.</td>
+</tr>
+<tr>
+<td><a href="#createExecve">createExecve</a></td>
+<td>Function to patch the 'execve' process creation functions.</td>
+</tr>
+<tr>
+<td><a href="#createFork">createFork</a></td>
+<td>Function to patch the 'fork' process creation functions.</td>
+</tr>
+<tr>
+<td><a href="#createForkExec">createForkExec</a></td>
+<td>Function to patch the 'fork_exec' process creation functions.</td>
+</tr>
+<tr>
+<td><a href="#createPosixSpawn">createPosixSpawn</a></td>
+<td>Function to patch the 'posix_spawn' process creation functions.</td>
+</tr>
+<tr>
+<td><a href="#createSpawnl">createSpawnl</a></td>
+<td>Function to patch the 'spawnl' process creation functions.</td>
+</tr>
+<tr>
+<td><a href="#createSpawnv">createSpawnv</a></td>
+<td>Function to patch the 'spawnv' process creation functions.</td>
+</tr>
+<tr>
+<td><a href="#createSpawnve">createSpawnve</a></td>
+<td>Function to patch the 'spawnve' process creation functions.</td>
+</tr>
+<tr>
+<td><a href="#newCreateProcess">newCreateProcess</a></td>
+<td>Function replacing the 'CreateProcess' function of the _subprocess or _winapi module.</td>
+</tr>
+<tr>
+<td><a href="#newExecl">newExecl</a></td>
+<td>Function replacing the 'execl' functions of the os module.</td>
+</tr>
+<tr>
+<td><a href="#newExecv">newExecv</a></td>
+<td>Function replacing the 'execv' functions of the os module.</td>
+</tr>
+<tr>
+<td><a href="#newExecve">newExecve</a></td>
+<td>Function replacing the 'execve' functions of the os module.</td>
+</tr>
+<tr>
+<td><a href="#newFork">newFork</a></td>
+<td>Function replacing the 'fork' function of the os module.</td>
+</tr>
+<tr>
+<td><a href="#newForkExec">newForkExec</a></td>
+<td>Function replacing the 'fork_exec' functions of the _posixsubprocess module.</td>
+</tr>
+<tr>
+<td><a href="#newPosixSpawn">newPosixSpawn</a></td>
+<td>Function replacing the 'posix_spawn' functions of the os module.</td>
+</tr>
+<tr>
+<td><a href="#newSpawnl">newSpawnl</a></td>
+<td>Function replacing the 'spawnl' functions of the os module.</td>
+</tr>
+<tr>
+<td><a href="#newSpawnv">newSpawnv</a></td>
+<td>Function replacing the 'spawnv' functions of the os module.</td>
+</tr>
+<tr>
+<td><a href="#newSpawnve">newSpawnve</a></td>
+<td>Function replacing the 'spawnve' functions of the os module.</td>
+</tr>
+<tr>
+<td><a href="#patchModule">patchModule</a></td>
+<td>Function to replace a function of a module with a modified one.</td>
+</tr>
+<tr>
+<td><a href="#patchNewProcessFunctions">patchNewProcessFunctions</a></td>
+<td>Function to patch the process creation functions to support multiprocess debugging.</td>
+</tr>
+</table>
+<hr />
+<hr />
+<a NAME="_shallPatch" ID="_shallPatch"></a>
+<h2>_shallPatch</h2>
+<b>_shallPatch</b>(<i></i>)
+
+<p>
+    Function to determine, if the multiprocessing patches should be done.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating patching should be performed
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="createCreateProcess" ID="createCreateProcess"></a>
+<h2>createCreateProcess</h2>
+<b>createCreateProcess</b>(<i>originalName</i>)
+
+<p>
+    Function to patch the 'CreateProcess' process creation function of
+    Windows.
+</p>
+<dl>
+
+<dt><i>originalName</i> (str)</dt>
+<dd>
+original name of the function to be patched
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+function replacing the original one
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+function
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="createExecl" ID="createExecl"></a>
+<h2>createExecl</h2>
+<b>createExecl</b>(<i>originalName</i>)
+
+<p>
+    Function to patch the 'execl' process creation functions.
+</p>
+<p>
+    <ul>
+        <li>os.execl(path, arg0, arg1, ...)</li>
+        <li>os.execle(path, arg0, arg1, ..., env)</li>
+        <li>os.execlp(file, arg0, arg1, ...)</li>
+        <li>os.execlpe(file, arg0, arg1, ..., env)</li>
+    </ul>
+</p>
+<dl>
+
+<dt><i>originalName</i> (str)</dt>
+<dd>
+original name of the function to be patched
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+function replacing the original one
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+function
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="createExecv" ID="createExecv"></a>
+<h2>createExecv</h2>
+<b>createExecv</b>(<i>originalName</i>)
+
+<p>
+    Function to patch the 'execv' process creation functions.
+</p>
+<p>
+    <ul>
+        <li>os.execv(path, args)</li>
+        <li>os.execvp(file, args)</li>
+    </ul>
+</p>
+<dl>
+
+<dt><i>originalName</i> (str)</dt>
+<dd>
+original name of the function to be patched
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+function replacing the original one
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+function
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="createExecve" ID="createExecve"></a>
+<h2>createExecve</h2>
+<b>createExecve</b>(<i>originalName</i>)
+
+<p>
+    Function to patch the 'execve' process creation functions.
+</p>
+<p>
+    <ul>
+        <li>os.execve(path, args, env)</li>
+        <li>os.execvpe(file, args, env)</li>
+    </ul>
+</p>
+<dl>
+
+<dt><i>originalName</i> (str)</dt>
+<dd>
+original name of the function to be patched
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+function replacing the original one
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+function
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="createFork" ID="createFork"></a>
+<h2>createFork</h2>
+<b>createFork</b>(<i>originalName</i>)
+
+<p>
+    Function to patch the 'fork' process creation functions.
+</p>
+<p>
+    <ul>
+        <li>os.fork()</li>
+    </ul>
+</p>
+<dl>
+
+<dt><i>originalName</i> (str)</dt>
+<dd>
+original name of the function to be patched
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+function replacing the original one
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+function
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="createForkExec" ID="createForkExec"></a>
+<h2>createForkExec</h2>
+<b>createForkExec</b>(<i>originalName</i>)
+
+<p>
+    Function to patch the 'fork_exec' process creation functions.
+</p>
+<p>
+    <ul>
+        <li>_posixsubprocess.fork_exec(args, executable_list, close_fds,
+            ... (13 more))</li>
+    </ul>
+</p>
+<dl>
+
+<dt><i>originalName</i> (str)</dt>
+<dd>
+original name of the function to be patched
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+function replacing the original one
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+function
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="createPosixSpawn" ID="createPosixSpawn"></a>
+<h2>createPosixSpawn</h2>
+<b>createPosixSpawn</b>(<i>originalName</i>)
+
+<p>
+    Function to patch the 'posix_spawn' process creation functions.
+</p>
+<p>
+    <ul>
+        <li>os.posix_spawn(path, argv, env, *, file_actions=None, ...
+            (6 more))</li>
+        <li>os.posix_spawnp(path, argv, env, *, file_actions=None, ...
+            (6 more))</li>
+    </ul>
+</p>
+<dl>
+
+<dt><i>originalName</i> (str)</dt>
+<dd>
+original name of the function to be patched
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+function replacing the original one
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+function
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="createSpawnl" ID="createSpawnl"></a>
+<h2>createSpawnl</h2>
+<b>createSpawnl</b>(<i>originalName</i>)
+
+<p>
+    Function to patch the 'spawnl' process creation functions.
+</p>
+<p>
+    <ul>
+        <li>os.spawnl(mode, path, arg0, arg1, ...)</li>
+        <li>os.spawnlp(mode, file, arg0, arg1, ...)</li>
+    </ul>
+</p>
+<dl>
+
+<dt><i>originalName</i> (str)</dt>
+<dd>
+original name of the function to be patched
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+function replacing the original one
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+function
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="createSpawnv" ID="createSpawnv"></a>
+<h2>createSpawnv</h2>
+<b>createSpawnv</b>(<i>originalName</i>)
+
+<p>
+    Function to patch the 'spawnv' process creation functions.
+</p>
+<p>
+    <ul>
+        <li>os.spawnv(mode, path, args)</li>
+        <li>os.spawnvp(mode, file, args)</li>
+    </ul>
+</p>
+<dl>
+
+<dt><i>originalName</i> (str)</dt>
+<dd>
+original name of the function to be patched
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+function replacing the original one
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+function
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="createSpawnve" ID="createSpawnve"></a>
+<h2>createSpawnve</h2>
+<b>createSpawnve</b>(<i>originalName</i>)
+
+<p>
+    Function to patch the 'spawnve' process creation functions.
+</p>
+<p>
+    <ul>
+        <li>os.spawnve(mode, path, args, env)</li>
+        <li>os.spawnvpe(mode, file, args, env)</li>
+    </ul>
+</p>
+<dl>
+
+<dt><i>originalName</i> (str)</dt>
+<dd>
+original name of the function to be patched
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+function replacing the original one
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+function
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="newCreateProcess" ID="newCreateProcess"></a>
+<h2>newCreateProcess</h2>
+<b>newCreateProcess</b>(<i>appName, cmdline, *args</i>)
+
+<p>
+        Function replacing the 'CreateProcess' function of the _subprocess
+        or _winapi module.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="newExecl" ID="newExecl"></a>
+<h2>newExecl</h2>
+<b>newExecl</b>(<i>path, *args</i>)
+
+<p>
+        Function replacing the 'execl' functions of the os module.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="newExecv" ID="newExecv"></a>
+<h2>newExecv</h2>
+<b>newExecv</b>(<i>path, args</i>)
+
+<p>
+        Function replacing the 'execv' functions of the os module.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="newExecve" ID="newExecve"></a>
+<h2>newExecve</h2>
+<b>newExecve</b>(<i>path, args, env</i>)
+
+<p>
+        Function replacing the 'execve' functions of the os module.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="newFork" ID="newFork"></a>
+<h2>newFork</h2>
+<b>newFork</b>(<i></i>)
+
+<p>
+        Function replacing the 'fork' function of the os module.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="newForkExec" ID="newForkExec"></a>
+<h2>newForkExec</h2>
+<b>newForkExec</b>(<i>args, *other_args</i>)
+
+<p>
+        Function replacing the 'fork_exec' functions of the _posixsubprocess
+        module.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="newPosixSpawn" ID="newPosixSpawn"></a>
+<h2>newPosixSpawn</h2>
+<b>newPosixSpawn</b>(<i>path, argv, env, **kwargs</i>)
+
+<p>
+        Function replacing the 'posix_spawn' functions of the os module.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="newSpawnl" ID="newSpawnl"></a>
+<h2>newSpawnl</h2>
+<b>newSpawnl</b>(<i>mode, path, *args</i>)
+
+<p>
+        Function replacing the 'spawnl' functions of the os module.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="newSpawnv" ID="newSpawnv"></a>
+<h2>newSpawnv</h2>
+<b>newSpawnv</b>(<i>mode, path, args</i>)
+
+<p>
+        Function replacing the 'spawnv' functions of the os module.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="newSpawnve" ID="newSpawnve"></a>
+<h2>newSpawnve</h2>
+<b>newSpawnve</b>(<i>mode, path, args, env</i>)
+
+<p>
+        Function replacing the 'spawnve' functions of the os module.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="patchModule" ID="patchModule"></a>
+<h2>patchModule</h2>
+<b>patchModule</b>(<i>module, functionName, createFunction</i>)
+
+<p>
+    Function to replace a function of a module with a modified one.
+</p>
+<dl>
+
+<dt><i>module</i> (types.ModuleType)</dt>
+<dd>
+reference to the module
+</dd>
+<dt><i>functionName</i> (str)</dt>
+<dd>
+name of the function to be replaced
+</dd>
+<dt><i>createFunction</i> (types.FunctionType)</dt>
+<dd>
+function creating the replacement
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="patchNewProcessFunctions" ID="patchNewProcessFunctions"></a>
+<h2>patchNewProcessFunctions</h2>
+<b>patchNewProcessFunctions</b>(<i>multiprocessEnabled, debugClient</i>)
+
+<p>
+    Function to patch the process creation functions to support multiprocess
+    debugging.
+</p>
+<dl>
+
+<dt><i>multiprocessEnabled</i> (bool)</dt>
+<dd>
+flag indicating multiprocess support
+</dd>
+<dt><i>debugClient</i> (DebugClient)</dt>
+<dd>
+reference to the debug client object
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Documentation/Source/eric6.DebugClients.Python.MultiprocessingExtension.html	Thu Dec 17 17:36:54 2020 +0100
@@ -0,0 +1,140 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.DebugClients.Python.MultiprocessingExtension</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>eric6.DebugClients.Python.MultiprocessingExtension</h1>
+
+<p>
+Module implementing a function to patch multiprocessing.Process to support
+debugging of the process.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>_debugClient</td></tr><tr><td>_originalBootstrap</td></tr><tr><td>_originalProcess</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#ProcessWrapper">ProcessWrapper</a></td>
+<td>Wrapper class for multiprocessing.Process.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+
+<tr>
+<td><a href="#patchMultiprocessing">patchMultiprocessing</a></td>
+<td>Function to patch the multiprocessing module.</td>
+</tr>
+</table>
+<hr />
+<hr />
+<a NAME="ProcessWrapper" ID="ProcessWrapper"></a>
+<h2>ProcessWrapper</h2>
+
+<p>
+        Wrapper class for multiprocessing.Process.
+</p>
+<h3>Derived from</h3>
+_originalProcess
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#ProcessWrapper._bootstrap">_bootstrap</a></td>
+<td>Wrapper around _bootstrap to start debugger.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="ProcessWrapper._bootstrap" ID="ProcessWrapper._bootstrap"></a>
+<h4>ProcessWrapper._bootstrap</h4>
+<b>_bootstrap</b>(<i>*args, **kwargs</i>)
+
+<p>
+            Wrapper around _bootstrap to start debugger.
+</p>
+<dl>
+
+<dt><i>args</i> (list)</dt>
+<dd>
+function arguments
+</dd>
+<dt><i>kwargs</i> (dict)</dt>
+<dd>
+keyword only arguments
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+exit code of the process
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="patchMultiprocessing" ID="patchMultiprocessing"></a>
+<h2>patchMultiprocessing</h2>
+<b>patchMultiprocessing</b>(<i>module, debugClient</i>)
+
+<p>
+    Function to patch the multiprocessing module.
+</p>
+<dl>
+
+<dt><i>module</i> (module)</dt>
+<dd>
+reference to the imported module to be patched
+</dd>
+<dt><i>debugClient</i> (DebugClient)</dt>
+<dd>
+reference to the debug client object
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Documentation/Source/eric6.DebugClients.Python.QProcessExtension.html	Thu Dec 17 17:36:54 2020 +0100
@@ -0,0 +1,261 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.DebugClients.Python.QProcessExtension</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>eric6.DebugClients.Python.QProcessExtension</h1>
+
+<p>
+Module implementing a function to patch QProcess to support debugging of the
+process.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>_debugClient</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#QProcessWrapper">QProcessWrapper</a></td>
+<td>Wrapper class for *.QProcess.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+
+<tr>
+<td><a href="#patchQProcess">patchQProcess</a></td>
+<td>Function to patch the QtCore module's QProcess.</td>
+</tr>
+</table>
+<hr />
+<hr />
+<a NAME="QProcessWrapper" ID="QProcessWrapper"></a>
+<h2>QProcessWrapper</h2>
+
+<p>
+        Wrapper class for *.QProcess.
+</p>
+<h3>Derived from</h3>
+module.QProcess
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>_origQProcessStartDetached</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#QProcessWrapper.__init__">QProcessWrapper</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#QProcessWrapper.__startDetached">__startDetached</a></td>
+<td>Private method to start the detached process.</td>
+</tr>
+<tr>
+<td><a href="#QProcessWrapper.start">start</a></td>
+<td>Public method to start the process.</td>
+</tr>
+<tr>
+<td><a href="#QProcessWrapper.startDetached">startDetached</a></td>
+<td>Public method to start the detached process.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#QProcessWrapper.startDetachedStatic">startDetachedStatic</a></td>
+<td>Static method to start the detached process.</td>
+</tr>
+</table>
+
+<a NAME="QProcessWrapper.__init__" ID="QProcessWrapper.__init__"></a>
+<h4>QProcessWrapper (Constructor)</h4>
+<b>QProcessWrapper</b>(<i>parent=None</i>)
+
+<p>
+            Constructor
+</p>
+<a NAME="QProcessWrapper.__startDetached" ID="QProcessWrapper.__startDetached"></a>
+<h4>QProcessWrapper.__startDetached</h4>
+<b>__startDetached</b>(<i>*args, **kwargs</i>)
+
+<p>
+            Private method to start the detached process.
+</p>
+<p>
+            This method patches the arguments such, that a debug client is
+            started for the Python script. A Python script is assumed, if the
+            program to be started contains the string 'python'.
+</p>
+<dl>
+
+<dt><i>args</i> (list)</dt>
+<dd>
+arguments of the start call
+</dd>
+<dt><i>kwargs</i> (dict)</dt>
+<dd>
+keyword arguments of the start call
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a successful start
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<a NAME="QProcessWrapper.start" ID="QProcessWrapper.start"></a>
+<h4>QProcessWrapper.start</h4>
+<b>start</b>(<i>*args, **kwargs</i>)
+
+<p>
+            Public method to start the process.
+</p>
+<p>
+            This method patches the arguments such, that a debug client is
+            started for the Python script. A Python script is assumed, if the
+            program to be started contains the string 'python'.
+</p>
+<dl>
+
+<dt><i>args</i> (list)</dt>
+<dd>
+arguments of the start call
+</dd>
+<dt><i>kwargs</i> (dict)</dt>
+<dd>
+keyword arguments of the start call
+</dd>
+</dl>
+<a NAME="QProcessWrapper.startDetached" ID="QProcessWrapper.startDetached"></a>
+<h4>QProcessWrapper.startDetached</h4>
+<b>startDetached</b>(<i>*args, **kwargs</i>)
+
+<p>
+            Public method to start the detached process.
+</p>
+<p>
+            This method patches the arguments such, that a debug client is
+            started for the Python script. A Python script is assumed, if the
+            program to be started contains the string 'python'.
+</p>
+<dl>
+
+<dt><i>args</i> (list)</dt>
+<dd>
+arguments of the start call
+</dd>
+<dt><i>kwargs</i> (dict)</dt>
+<dd>
+keyword arguments of the start call
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a successful start
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<a NAME="QProcessWrapper.startDetachedStatic" ID="QProcessWrapper.startDetachedStatic"></a>
+<h4>QProcessWrapper.startDetachedStatic (static)</h4>
+<b>startDetachedStatic</b>(<i>**kwargs</i>)
+
+<p>
+            Static method to start the detached process.
+</p>
+<p>
+            This method patches the arguments such, that a debug client is
+            started for the Python script. A Python script is assumed, if the
+            program to be started contains the string 'python'.
+</p>
+<dl>
+
+<dt><i>args</i> (list)</dt>
+<dd>
+arguments of the start call
+</dd>
+<dt><i>kwargs</i> (dict)</dt>
+<dd>
+keyword arguments of the start call
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a successful start
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="patchQProcess" ID="patchQProcess"></a>
+<h2>patchQProcess</h2>
+<b>patchQProcess</b>(<i>module, debugClient</i>)
+
+<p>
+    Function to patch the QtCore module's QProcess.
+</p>
+<dl>
+
+<dt><i>module</i> (module)</dt>
+<dd>
+reference to the imported module to be patched
+</dd>
+<dt><i>debugClient</i> (DebugClient)</dt>
+<dd>
+reference to the debug client object
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Documentation/Source/eric6.DebugClients.Python.SubprocessExtension.html	Thu Dec 17 17:36:54 2020 +0100
@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.DebugClients.Python.SubprocessExtension</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>eric6.DebugClients.Python.SubprocessExtension</h1>
+
+<p>
+Module implementing a function to patch subprocess.Popen to support debugging
+of the process.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>_debugClient</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#PopenWrapper">PopenWrapper</a></td>
+<td>Wrapper class for subprocess.Popen.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+
+<tr>
+<td><a href="#patchSubprocess">patchSubprocess</a></td>
+<td>Function to patch the subprocess module.</td>
+</tr>
+</table>
+<hr />
+<hr />
+<a NAME="PopenWrapper" ID="PopenWrapper"></a>
+<h2>PopenWrapper</h2>
+
+<p>
+        Wrapper class for subprocess.Popen.
+</p>
+<h3>Derived from</h3>
+module.Popen
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#PopenWrapper.__init__">PopenWrapper</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="PopenWrapper.__init__" ID="PopenWrapper.__init__"></a>
+<h4>PopenWrapper (Constructor)</h4>
+<b>PopenWrapper</b>(<i>arguments, *args, **kwargs</i>)
+
+<p>
+            Constructor
+</p>
+<dl>
+
+<dt><i>arguments</i> (list of str or str)</dt>
+<dd>
+command line arguments for the new process
+</dd>
+<dt><i>args</i> (list)</dt>
+<dd>
+constructor arguments of Popen
+</dd>
+<dt><i>kwargs</i> (dict)</dt>
+<dd>
+constructor keyword only arguments of Popen
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="patchSubprocess" ID="patchSubprocess"></a>
+<h2>patchSubprocess</h2>
+<b>patchSubprocess</b>(<i>module, debugClient</i>)
+
+<p>
+    Function to patch the subprocess module.
+</p>
+<dl>
+
+<dt><i>module</i> (module)</dt>
+<dd>
+reference to the imported module to be patched
+</dd>
+<dt><i>debugClient</i> (DebugClient)</dt>
+<dd>
+reference to the debug client object
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Debugger.DebugServer.html	Thu Dec 17 17:36:24 2020 +0100
+++ b/eric6/Documentation/Source/eric6.Debugger.DebugServer.html	Thu Dec 17 17:36:54 2020 +0100
@@ -107,9 +107,9 @@
 emitted after the client
         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
+<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>
@@ -156,9 +156,9 @@
 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
+<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>
@@ -172,9 +172,9 @@
         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
+<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>

eric ide

mercurial