Qore Programming Language
1.7.0
|
Class implementing breakpoint for debugging. More...
#include <QoreProgram.h>
Public Member Methods | |
DLLEXPORT void | addThreadId (int tid, ExceptionSink *xsink) |
DLLEXPORT void | assignProgram (QoreProgram *new_pgm, ExceptionSink *xsink) |
DLLEXPORT void | assignStatement (AbstractStatement *statement, ExceptionSink *xsink) |
DLLEXPORT void | clearThreadIds (ExceptionSink *xsink) |
DLLEXPORT unsigned | getBreakpointId () const |
get the breakpoint id More... | |
DLLEXPORT QoreListNode * | getStatementIds (ExceptionSink *xsink) |
DLLEXPORT void | getStatements (AbstractStatementList_t &statList, ExceptionSink *xsink) |
DLLEXPORT void | getThreadIds (TidList_t &tidList, ExceptionSink *xsink) |
DLLEXPORT bool | isThreadId (int tid, ExceptionSink *xsink) |
DLLEXPORT QoreBreakpoint & | operator= (const QoreBreakpoint &other) |
DLLEXPORT void | removeThreadId (int tid, ExceptionSink *xsink) |
DLLEXPORT AbstractStatement * | resolveStatementId (unsigned long statementId, ExceptionSink *xsink) const |
DLLEXPORT void | setThreadIds (TidList_t tidList, ExceptionSink *xsink) |
DLLEXPORT void | unassignStatement (AbstractStatement *statement, ExceptionSink *xsink) |
Public Member Methods inherited from AbstractPrivateData | |
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 () const |
increments the reference count of the object | |
Public Member Methods inherited from QoreReferenceCounter | |
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 | |
Static Public Member Methods | |
static DLLEXPORT QoreBreakpoint * | resolveBreakpointId (unsigned breakpointId) |
get the breakpoint from breakpoint id More... | |
Public Attributes | |
BreakpointPolicy | policy |
Private Member Methods | |
virtual DLLLOCAL bool | checkBreak () const |
check if program flow should be interrupted | |
Private Member Methods inherited from AbstractPrivateData | |
virtual DLLLOCAL | ~AbstractPrivateData () |
as these objects are reference counted, the destructor should be called only when the reference count = 0 and not manually | |
Class implementing breakpoint for debugging.
Breakpoint is assigned to one or more statements. When such a statement is executed then breakpoint is probed using checkBreak and program is potentially interrupted and callback QoreDebugProgram is triggered. The instance must be assigned to a QoreProgram
DLLEXPORT void QoreBreakpoint::addThreadId | ( | int | tid, |
ExceptionSink * | xsink | ||
) |
Add thread ID to the list
DLLEXPORT void QoreBreakpoint::assignProgram | ( | QoreProgram * | new_pgm, |
ExceptionSink * | xsink | ||
) |
Assign QoreProgram to breakpoint.
new_pgm | QoreProgram to be assigned, when NULL then unassigns Program and deletes all statement references |
xsink | if an error occurs, the Qore-language exception information will be added here |
DLLEXPORT void QoreBreakpoint::assignStatement | ( | AbstractStatement * | statement, |
ExceptionSink * | xsink | ||
) |
Assign breakpoint to a statement.
DLLEXPORT void QoreBreakpoint::clearThreadIds | ( | ExceptionSink * | xsink | ) |
Clear list of the thread IDs
DLLEXPORT unsigned QoreBreakpoint::getBreakpointId | ( | ) | const |
get the breakpoint id
DLLEXPORT QoreListNode* QoreBreakpoint::getStatementIds | ( | ExceptionSink * | xsink | ) |
Get list of statement ids
DLLEXPORT void QoreBreakpoint::getStatements | ( | AbstractStatementList_t & | statList, |
ExceptionSink * | xsink | ||
) |
Get list of statements
DLLEXPORT void QoreBreakpoint::getThreadIds | ( | TidList_t & | tidList, |
ExceptionSink * | xsink | ||
) |
Get list of the thread IDs
DLLEXPORT bool QoreBreakpoint::isThreadId | ( | int | tid, |
ExceptionSink * | xsink | ||
) |
Check if thread is ID in list
DLLEXPORT QoreBreakpoint& QoreBreakpoint::operator= | ( | const QoreBreakpoint & | other | ) |
Copy all props but object reference
DLLEXPORT void QoreBreakpoint::removeThreadId | ( | int | tid, |
ExceptionSink * | xsink | ||
) |
Remove thread ID from the list
|
static |
get the breakpoint from breakpoint id
breakpointId | provided by getBreakpointId |
DLLEXPORT AbstractStatement* QoreBreakpoint::resolveStatementId | ( | unsigned long | statementId, |
ExceptionSink * | xsink | ||
) | const |
Resolve statement from statement id
DLLEXPORT void QoreBreakpoint::setThreadIds | ( | TidList_t | tidList, |
ExceptionSink * | xsink | ||
) |
Set list of the thread IDs
DLLEXPORT void QoreBreakpoint::unassignStatement | ( | AbstractStatement * | statement, |
ExceptionSink * | xsink | ||
) |
Unassign breakpoint from statement
BreakpointPolicy QoreBreakpoint::policy |
Defines policy how thread list is evaluated. In the case of ACCEPT policy are considered all TIDs in list. In case of REJECT policy are considered all TIDs not in the list.