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:279