DebugClients/Python3/eric4dbgstub.py

changeset 0
de9c2efb9d02
child 13
1af94a91f439
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DebugClients/Python3/eric4dbgstub.py	Mon Dec 28 16:03:33 2009 +0000
@@ -0,0 +1,82 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a debugger stub for remote debugging.
+"""
+
+import os
+import sys
+import distutils.sysconfig
+
+from eric4config import getConfig
+
+debugger = None
+__scriptname = None
+
+modDir = distutils.sysconfig.get_python_lib(True)
+ericpath = os.getenv('ERICDIR', getConfig('ericDir'))
+
+if not ericpath in sys.path:
+    sys.path.insert(-1, ericpath)
+    
+def initDebugger(kind = "standard"):
+    """
+    Module function to initialize a debugger for remote debugging.
+    
+    @param kind type of debugger ("standard" or "threads")
+    @return flag indicating success (boolean)
+    """
+    global debugger
+    res = True
+    try:
+        if kind == "standard":
+            import DebugClient
+            debugger = DebugClient.DebugClient()
+        elif kind == "threads":
+            import DebugClientThreads
+            debugger = DebugClientThreads.DebugClientThreads()
+        else:
+            raise ValueError
+    except ImportError:
+        debugger = None
+        res = False
+        
+    return res
+
+def runcall(func, *args):
+    """
+    Module function mimicing the Pdb interface.
+    
+    @param func function to be called (function object)
+    @param *args arguments being passed to func
+    @return the function result
+    """
+    global debugger, __scriptname
+    return debugger.run_call(__scriptname, func, *args)
+    
+def setScriptname(name):
+    """
+    Module function to set the scriptname to be reported back to the IDE.
+    
+    @param name absolute pathname of the script (string)
+    """
+    global __scriptname
+    __scriptname = name
+
+def startDebugger(enableTrace = True, exceptions = True, 
+                  tracePython = False, redirect = True):
+    """
+    Module function used to start the remote debugger.
+    
+    @keyparam enableTrace flag to enable the tracing function (boolean)
+    @keyparam exceptions flag to enable exception reporting of the IDE (boolean)
+    @keyparam tracePython flag to enable tracing into the Python library (boolean)
+    @keyparam redirect flag indicating redirection of stdin, stdout and stderr (boolean)
+    """
+    global debugger
+    if debugger:
+        debugger.startDebugger(enableTrace = enableTrace, exceptions = exceptions, 
+            tracePython = tracePython, redirect = redirect)

eric ide

mercurial