![]() |
Qore Programming Language
0.9.16
|
supports parsing and executing Qore-language code, reference counted, dynamically-allocated only More...
#include <QoreDebugProgram.h>
Public Member Methods | |
DLLEXPORT | QoreDebugProgram () |
creates the object | |
DLLEXPORT int | breakProgram (QoreProgram *pgm) const |
DLLEXPORT int | breakProgramThread (QoreProgram *pgm, int tid) const |
DLLEXPORT int | getInterruptedCount () |
get number of program currently interrupted | |
virtual DLLEXPORT void | onException (QoreProgram *pgm, const AbstractStatement *statement, DebugRunStateEnum &rs, const AbstractStatement *&rts, ExceptionSink *xsink) |
virtual DLLEXPORT void | onExit (QoreProgram *pgm, const StatementBlock *statement, QoreValue &returnValue, DebugRunStateEnum &rs, const AbstractStatement *&rts, ExceptionSink *xsink) |
virtual DLLEXPORT void | onFunctionEnter (QoreProgram *pgm, const StatementBlock *statement, DebugRunStateEnum &rs, const AbstractStatement *&rts, ExceptionSink *xsink) |
virtual DLLEXPORT void | onFunctionExit (QoreProgram *pgm, const StatementBlock *statement, QoreValue &returnValue, DebugRunStateEnum &rs, const AbstractStatement *&rts, ExceptionSink *xsink) |
virtual DLLEXPORT void | onStep (QoreProgram *pgm, const StatementBlock *blockStatement, const AbstractStatement *statement, unsigned bkptId, int &flow, DebugRunStateEnum &rs, const AbstractStatement *&rts, ExceptionSink *xsink) |
DLLEXPORT void | waitForTerminationAndClear (ExceptionSink *xsink) |
remove programs and wait till the program's last thread terminates More... | |
![]() | |
virtual DLLLOCAL void | deref () |
decrements the reference count of the object without the possibility of throwing a Qore-language exception | |
virtual DLLLOCAL void | deref (ExceptionSink *xsink) |
decrements the reference count of the object More... | |
DLLLOCAL void | ref () |
increments the reference count of the object More... | |
![]() | |
DLLEXPORT | QoreReferenceCounter () |
creates the reference counter object | |
DLLEXPORT | QoreReferenceCounter (const QoreReferenceCounter &old) |
creates a new object with a reference count of 1 More... | |
DLLEXPORT | ~QoreReferenceCounter () |
destroys the reference counter object | |
DLLEXPORT bool | is_unique () const |
returns true if the reference count is 1 More... | |
DLLEXPORT int | reference_count () const |
gets the reference count More... | |
DLLEXPORT bool | ROdereference () const |
atomically decrements the reference count More... | |
DLLEXPORT void | ROreference () const |
atomically increments the reference count | |
Private Member Methods | |
virtual DLLLOCAL | ~QoreDebugProgram () |
the destructor is private in order to prohibit the object from being allocated on the stack More... | |
![]() | |
virtual DLLLOCAL | ~AbstractPrivateData () |
as these objects are reference counted, the destructor should be called only when the reference count = 0 and not manually | |
supports parsing and executing Qore-language code, reference counted, dynamically-allocated only
This class implements a transaction and thread-safe container for qore-language code This class implements two-layered reference counting to address problems with circular references. When a program has a global variable that contains an object that references the program... objects now reference the dependency counter, so when the object's counter reaches zero and the global variable list is deleted, then the variables will in turn dereference the program so it can be deleted.
|
privatevirtual |
the destructor is private in order to prohibit the object from being allocated on the stack
the destructor will wait till all debug calls are terminated
DLLEXPORT int QoreDebugProgram::breakProgram | ( | QoreProgram * | pgm | ) | const |
Break program, i.e. all threads
DLLEXPORT int QoreDebugProgram::breakProgramThread | ( | QoreProgram * | pgm, |
int | tid | ||
) | const |
Break specific program thread
|
virtual |
Executed when an exception is raised.
|
virtual |
Executed when a thread/program is exited.
|
virtual |
Executed when a function is entered.
|
virtual |
Executed when a function is exited.
|
virtual |
Executed on every step of StatementBlock.
pgm | |
blockStatement | |
bkptId | breakpoint id if hit otherwise 0 |
statement | current AbstractStatement of blockStatement being processed. Executed also when blockStatement is entered with value of NULL |
flow | loop flow |
rs | run state |
rts | "run to" statement |
xsink | if an error occurs, the Qore-language exception information will be added here |
DLLEXPORT void QoreDebugProgram::waitForTerminationAndClear | ( | ExceptionSink * | xsink | ) |
remove programs and wait till the program's last thread terminates
xsink | if an error occurs, the Qore-language exception information will be added here |