DebugClients/Python3/eric5dbgstub.py

Tue, 02 Oct 2012 19:53:31 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 02 Oct 2012 19:53:31 +0200
changeset 2087
795992a5c561
parent 1509
c0b5e693b0eb
child 2302
f29e9405c851
permissions
-rw-r--r--

Made the sixth set of Qt5 compatibility changes.

# -*- coding: utf-8 -*-

# Copyright (c) 2009 - 2012 Detlev Offenbach <detlev@die-offenbachs.de>
#

"""
Module implementing a debugger stub for remote debugging.
"""

import os
import sys
import distutils.sysconfig

from eric5config 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