34#ifndef INCLUDE_QORE_QOREDEBUGPROGRAM_H_
35#define INCLUDE_QORE_QOREDEBUGPROGRAM_H_
37#include <qore/AbstractPrivateData.h>
39#include <qore/support.h>
43class AbstractStatement;
46class qore_program_private;
47class qore_debug_program_private;
49enum DebugRunStateEnum :
unsigned char {
54 DBG_RS_UNTIL_RETURN = 4,
67 friend class qore_program_private;
68 friend class qore_debug_program_private;
71 qore_debug_program_private* priv;
94 DLLEXPORT
virtual void onAttach(
QoreProgram *pgm, DebugRunStateEnum &rs,
const AbstractStatement* &rts,
ExceptionSink* xsink);
96 DLLEXPORT
virtual void onDetach(
QoreProgram *pgm, DebugRunStateEnum &rs,
const AbstractStatement* &rts,
ExceptionSink* xsink);
109 DLLEXPORT
virtual void onStep(
QoreProgram *pgm,
const StatementBlock *blockStatement,
const AbstractStatement *statement,
unsigned bkptId,
int &flow, DebugRunStateEnum &rs,
const AbstractStatement* &rts,
ExceptionSink* xsink);
the base class for all data to be used as private data of Qore objects
Definition: AbstractPrivateData.h:44
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:50
Class implementing breakpoint for debugging.
Definition: QoreProgram.h:1040
supports parsing and executing Qore-language code, reference counted, dynamically-allocated only
Definition: QoreDebugProgram.h:66
virtual DLLEXPORT void onFunctionEnter(QoreProgram *pgm, const StatementBlock *statement, 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 int breakProgramThread(QoreProgram *pgm, int tid) const
DLLEXPORT int breakProgram(QoreProgram *pgm) const
DLLEXPORT int getInterruptedCount()
get number of program currently interrupted
virtual DLLEXPORT void onFunctionExit(QoreProgram *pgm, const StatementBlock *statement, QoreValue &returnValue, DebugRunStateEnum &rs, const AbstractStatement *&rts, ExceptionSink *xsink)
DLLEXPORT void waitForTerminationAndClear(ExceptionSink *xsink)
remove programs and wait till the program's last thread terminates
virtual DLLEXPORT void onExit(QoreProgram *pgm, const StatementBlock *statement, QoreValue &returnValue, DebugRunStateEnum &rs, const AbstractStatement *&rts, ExceptionSink *xsink)
virtual DLLEXPORT void onException(QoreProgram *pgm, const AbstractStatement *statement, DebugRunStateEnum &rs, const AbstractStatement *&rts, ExceptionSink *xsink)
DLLEXPORT QoreDebugProgram()
creates the object
virtual DLLLOCAL ~QoreDebugProgram()
the destructor is private in order to prohibit the object from being allocated on the stack
This is the list container type in Qore, dynamically allocated only, reference counted.
Definition: QoreListNode.h:52
supports parsing and executing Qore-language code, reference counted, dynamically-allocated only
Definition: QoreProgram.h:128
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:276