eric7.DebugClients.Python.ThreadExtension

Module implementing an import hook patching thread modules to get debugged too.

Global Attributes

_qtThreadNumber

Classes

DummyThreadWrapper Wrapper class for threading._DummyThread.
QRunnableWrapper Wrapper class for *.QRunnable.
QThreadWrapper Wrapper class for *.QThread.
ThreadExtension Class implementing the thread support for the debugger.
ThreadWrapper Wrapper class for threading.Thread.
TimerWrapper Wrapper class for threading.(_)Timer.

Functions

None


DummyThreadWrapper

Wrapper class for threading._DummyThread.

Derived from

module._DummyThread, ThreadWrapper

Class Attributes

None

Class Methods

None

Methods

DummyThreadWrapper Constructor

Static Methods

None

DummyThreadWrapper (Constructor)

DummyThreadWrapper(*args, **kwargs)

Constructor

Up


QRunnableWrapper

Wrapper class for *.QRunnable.

Derived from

module.QRunnable

Class Attributes

None

Class Methods

None

Methods

QRunnableWrapper Constructor

Static Methods

None

QRunnableWrapper (Constructor)

QRunnableWrapper(*args, **kwargs)

Constructor

Up


QThreadWrapper

Wrapper class for *.QThread.

Derived from

module.QThread

Class Attributes

None

Class Methods

None

Methods

QThreadWrapper Constructor

Static Methods

None

QThreadWrapper (Constructor)

QThreadWrapper(*args, **kwargs)

Constructor

Up


ThreadExtension

Class implementing the thread support for the debugger.

Provides methods for intercepting thread creation, retrieving the running threads and their name and state.

Derived from

None

Class Attributes

None

Class Methods

None

Methods

ThreadExtension Constructor
_bootstrap Bootstrap for threading, which reports exceptions correctly.
_bootstrapQThread Bootstrap for QThread, which reports exceptions correctly.
attachThread Public method to setup a standard thread for DebugClient to debug.
dumpThreadList Public method to send the list of threads.
getExecutedFrame Public method to return the currently executed frame.
lockClient Public method to acquire the lock for this client.
patchGreenlet Public method to patch the 'greenlet' module.
patchPyThread Public method to patch Python _thread module.
patchPyThreading Public method to patch the Python threading module.
patchQThread Public method to patch the QtCore module's QThread.
setCurrentThread Public method to set the current thread.
threadTerminated Public method called when a DebugThread has exited.
unlockClient Public method to release the lock for this client.
updateThreadList Public method to update the list of running threads.

Static Methods

None

ThreadExtension (Constructor)

ThreadExtension()

Constructor

ThreadExtension._bootstrap

_bootstrap(run)

Bootstrap for threading, which reports exceptions correctly.

run (method pointer)
the run method of threading.Thread

ThreadExtension._bootstrapQThread

_bootstrapQThread(run)

Bootstrap for QThread, which reports exceptions correctly.

run (method pointer)
the run method of *.QThread

ThreadExtension.attachThread

attachThread(target=None, args=None, kwargs=None, mainThread=False)

Public method to setup a standard thread for DebugClient to debug.

If mainThread is True, then we are attaching to the already started mainthread of the app and the rest of the args are ignored.

target (function)
start function of the target thread (i.e. the user code)
args (list of Any)
arguments to pass to target
kwargs (dict of Any)
keyword arguments to pass to target
mainThread (bool)
True, if we are attaching to the already started mainthread of the app
Return:
identifier of the created thread
Return Type:
int

ThreadExtension.dumpThreadList

dumpThreadList()

Public method to send the list of threads.

ThreadExtension.getExecutedFrame

getExecutedFrame(frame)

Public method to return the currently executed frame.

frame (frame object)
the current frame
Return:
the frame which is excecuted (without debugger frames)
Return Type:
frame object

ThreadExtension.lockClient

lockClient(blocking=True)

Public method to acquire the lock for this client.

blocking (bool)
flag to indicating a blocking lock
Return:
flag indicating successful locking
Return Type:
bool

ThreadExtension.patchGreenlet

patchGreenlet(module)

Public method to patch the 'greenlet' module.

module (module)
reference to the imported module to be patched
Return:
flag indicating that the module was processed
Return Type:
bool

ThreadExtension.patchPyThread

patchPyThread(module)

Public method to patch Python _thread module.

module (module)
reference to the imported module to be patched

ThreadExtension.patchPyThreading

patchPyThreading(module)

Public method to patch the Python threading module.

module (module)
reference to the imported module to be patched

ThreadExtension.patchQThread

patchQThread(module)

Public method to patch the QtCore module's QThread.

module (module)
reference to the imported module to be patched

ThreadExtension.setCurrentThread

setCurrentThread(threadId)

Public method to set the current thread.

threadId (int)
the id the current thread should be set to.

ThreadExtension.threadTerminated

threadTerminated(threadId)

Public method called when a DebugThread has exited.

threadId (int)
id of the DebugThread that has exited

ThreadExtension.unlockClient

unlockClient()

Public method to release the lock for this client.

ThreadExtension.updateThreadList

updateThreadList()

Public method to update the list of running threads.

Up


ThreadWrapper

Wrapper class for threading.Thread.

Derived from

module.Thread

Class Attributes

None

Class Methods

None

Methods

ThreadWrapper Constructor

Static Methods

None

ThreadWrapper (Constructor)

ThreadWrapper(*args, **kwargs)

Constructor

Up


TimerWrapper

Wrapper class for threading.(_)Timer.

Derived from

timer, ThreadWrapper

Class Attributes

None

Class Methods

None

Methods

TimerWrapper Constructor

Static Methods

None

TimerWrapper (Constructor)

TimerWrapper(interval, function, *args, **kwargs)

Constructor

Up