22 #ifndef _INTERACTIVEDEBUGGER_HPP
23 #define _INTERACTIVEDEBUGGER_HPP
42 struct XQILLA_API
Run {};
46 static void outputLocation(
const XMLCh *file,
unsigned int line,
unsigned int column,
47 unsigned int context = 0);
48 static void outputLocationFromString(
const XMLCh *query,
unsigned int line,
unsigned int column,
49 unsigned int context = 0);
50 static std::string regexFind(
const char *regex,
const std::string &str,
int groupNo = 1);
54 unsigned int setBreakPoint(
const std::string &file,
unsigned int line,
unsigned int column,
bool temporary);
55 bool disableBreakPoint(
unsigned int number);
56 bool enableBreakPoint(
unsigned int number);
57 void listBreakPoints()
const;
63 virtual void run() = 0;
65 virtual bool changeFrame(
unsigned int number) = 0;
66 virtual unsigned int getStackSize()
const = 0;
67 virtual void stackTrace()
const = 0;
68 virtual bool outputCurrentFrame(
unsigned int context = 0)
const = 0;
69 virtual void outputCurrentFrameQueryPlan()
const = 0;
70 virtual bool queryCurrentFrame(
const char *queryString)
const = 0;
71 virtual bool currentFrameLocation(std::string &file,
unsigned int &line,
unsigned int &column)
const = 0;
73 virtual void setDoLazyEvaluation(
bool lazy) = 0;
74 virtual void setDoFocusOptimizationsn(
bool opt) = 0;
75 virtual void setDoProjection(
bool opt) = 0;
81 void checkBreak(
bool entering);
82 void breakForError(
const char *message);
93 BreakPoint(
const std::string &f,
unsigned int l,
unsigned int c,
bool t)
94 : file(f), line(l), column(c), temporary(t), disabled(false) {}
117 static bool matches(
const std::string &command,
118 const std::string &toMatch);
119 virtual bool matches(
const std::string &command)
const;
125 const char *briefHelp,
const char *moreHelp)
126 : name_(name), compatName_(compatName), briefHelp_(briefHelp), moreHelp_(moreHelp) {}
158 virtual bool currentFrameLocation(std::string &file,
unsigned int &line,
unsigned int &column)
const;
164 unsigned int getCurrentFrameNumber()
const;
174 bool focusOptimzations_;
virtual const char * getCommandName() const
Definition: InteractiveDebugger.hpp:112
const char * moreHelp_
Definition: InteractiveDebugger.hpp:131
Definition: InteractiveDebugger.hpp:44
virtual bool queryCurrentFrame(const char *queryString) const =0
static void outputLocation(const XMLCh *file, unsigned int line, unsigned int column, unsigned int context=0)
Definition: XQException.hpp:35
A class that represents an item in a query call stack.
Definition: StackFrame.hpp:47
virtual void enter(const StackFrame *stack, const DynamicContext *context)
Definition: DebugListener.hpp:42
Definition: InteractiveDebugger.hpp:91
Definition: InteractiveDebugger.hpp:134
virtual bool changeFrame(unsigned int number)=0
DebugCommand(const char *name, const char *compatName, const char *briefHelp, const char *moreHelp)
Definition: InteractiveDebugger.hpp:124
virtual void stackTrace() const =0
std::string file
Definition: InteractiveDebugger.hpp:96
virtual void error(const XQException &error, const StackFrame *stack, const DynamicContext *context)
Definition: DebugListener.hpp:44
A class used to listen for debugging information.
Definition: DebugListener.hpp:36
virtual bool currentFrameLocation(std::string &file, unsigned int &line, unsigned int &column) const =0
bool step_
Definition: InteractiveDebugger.hpp:103
virtual ~DebugCommand()
Definition: InteractiveDebugger.hpp:110
unsigned int line
Definition: InteractiveDebugger.hpp:97
Definition: InteractiveDebugger.hpp:107
virtual void setDoFocusOptimizationsn(bool opt)=0
DebugCommand * prevcmd_
Definition: InteractiveDebugger.hpp:87
Encapsulates a query expression.
Definition: XQQuery.hpp:57
virtual void outputCurrentFrameQueryPlan() const =0
bool queryStarted_
Definition: InteractiveDebugger.hpp:89
virtual const char * getBriefHelp() const
Definition: InteractiveDebugger.hpp:114
virtual const char * getCommandNameCompat() const
Definition: InteractiveDebugger.hpp:113
virtual void exit(const StackFrame *stack, const DynamicContext *context)
Definition: DebugListener.hpp:43
BreakPoint(const std::string &f, unsigned int l, unsigned int c, bool t)
Definition: InteractiveDebugger.hpp:93
virtual unsigned int getStackSize() const =0
std::vector< DebugCommand * > commands_
Definition: InteractiveDebugger.hpp:86
Definition: InteractiveDebugger.hpp:43
bool temporary
Definition: InteractiveDebugger.hpp:98
The execution time dynamic context interface.
Definition: DynamicContext.hpp:39
Definition: InteractiveDebugger.hpp:39
const char * compatName_
Definition: InteractiveDebugger.hpp:129
virtual bool doFocusOptimizations() const
Definition: DebugListener.hpp:47
bool disabled
Definition: InteractiveDebugger.hpp:99
std::vector< BreakPoint > breaks_
Definition: InteractiveDebugger.hpp:102
A class that gives records a location in the query.
Definition: LocationInfo.hpp:31
bool queryStarted() const
Definition: InteractiveDebugger.hpp:61
virtual bool outputCurrentFrame(unsigned int context=0) const =0
virtual bool doLazyEvaluation() const
Definition: DebugListener.hpp:46
Definition: InteractiveDebugger.hpp:42
virtual void setDoProjection(bool opt)=0
virtual void setDoLazyEvaluation(bool lazy)=0
const char * name_
Definition: InteractiveDebugger.hpp:128
const char * briefHelp_
Definition: InteractiveDebugger.hpp:130
unsigned int next_
Definition: InteractiveDebugger.hpp:104
virtual const char * getMoreHelp() const
Definition: InteractiveDebugger.hpp:115