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