DebugUtil.qm.dox.h
// -*- mode: c++; indent-tabs-mode: nil -*-
/* DebugUtil.qm Copyright 2013 - 2017 Qore Technologies, s.r.o.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
*/
// minimum required Qore version
namespace DebugUtil {
class WrapperGetOpt : public GetOpt {
public:
constructor(hash options);
split(list<string> args, reference<list<string>> wrp_args, reference<*string> pgm_name, reference<list<string>> pgm_args);
};
const QoreDebugWsProtocolHeader = "QoreDebugWsProtocol";
const QoreDebugProtocolVersion = "0.1";
const DUV_NONE = 0;
const DUV_INFO = 1;
const DUV_DEBUG = 2;
const DUV_DEBUG_1 = 3;
class DebugLogger {
public:
public :
int verbose = DUV_NONE;
public:
constructor() {}
log(int verbosity, string fmt);
log2(int verbosity, string fmt, *list args);
};
class AbstractDebugControl {
public:
public :
DebugLogger logger;
bool showFullException = False;
const runStateStrings = ('detach': DebugDetach, 'run': DebugRun, 'step': DebugStep, 'stepover': DebugStepOver, 'untilreturn': DebugUntilReturn);
const flowStrings = ('none': 0, 'return': DebugFlowReturn, 'break': DebugFlowBreak, 'continue': DebugFlowContinue);
const boolStrings = ('false': False, 'true': True);
const policyStrings = ('none': BreakpointPolicyNone, 'accept': BreakpointPolicyAccept, 'reject': BreakpointPolicyReject);
public:
log(int verbosity, string fmt);
static list enumFilter(softlist items, *string path);
static bool evalCondition(softstring value, *string cond);
// make_json/yaml does not support object code etc. so we need somehow process values
static hash serialize(auto val);
static auto unserialize(auto sv);
};
};
DebugDetach
const DebugDetach
DebugUtil::QoreDebugWsProtocolHeader
const QoreDebugWsProtocolHeader
The HTTP header string for the Qore debug protocol version.
Definition: DebugUtil.qm.dox.h:109
DebugUtil::WrapperGetOpt
class supporting argument parsing for executing programs to debug
Definition: DebugUtil.qm.dox.h:66
DebugFlowBreak
const DebugFlowBreak
BreakpointPolicyNone
const BreakpointPolicyNone
BreakpointPolicyReject
const BreakpointPolicyReject
DebugFlowContinue
const DebugFlowContinue
DebugUtil::AbstractDebugControl
base class for controlling debugging
Definition: DebugUtil.qm.dox.h:146
True
const True
DebugUtil::QoreDebugProtocolVersion
const QoreDebugProtocolVersion
The debug protocol version implemented.
Definition: DebugUtil.qm.dox.h:112
False
const False
DebugFlowReturn
const DebugFlowReturn
DebugUtil::DUV_INFO
const DUV_INFO
logging constant: info messages
Definition: DebugUtil.qm.dox.h:117
list
list list(...)
DebugUtil::DebugLogger::log
log(int verbosity, string fmt)
implement logging
DebugRun
const DebugRun
DebugUtil::DUV_NONE
const DUV_NONE
logging constant: no logging
Definition: DebugUtil.qm.dox.h:115
BreakpointPolicyAccept
const BreakpointPolicyAccept
DebugStepOver
const DebugStepOver
DebugUtil::DUV_DEBUG_1
const DUV_DEBUG_1
logging constant: detailed debug messages
Definition: DebugUtil.qm.dox.h:121
DebugUntilReturn
const DebugUntilReturn
DebugStep
const DebugStep
DebugUtil::DebugLogger
class that can be used for logging
Definition: DebugUtil.qm.dox.h:124
hash
hash hash(object obj)
DebugUtil::AbstractDebugControl::showFullException
bool showFullException
for debugging of debug library to see where exception is raised
Definition: DebugUtil.qm.dox.h:152
DebugUtil::DebugLogger::log2
log2(int verbosity, string fmt, *list args)
implement logging
DebugUtil
the DebugUtil namespace contains all the definitions in the DebugUtil module
Definition: DebugUtil.qm.dox.h:42
DebugUtil::WrapperGetOpt::split
split(list< string > args, reference< list< string >> wrp_args, reference< *string > pgm_name, reference< list< string >> pgm_args)
Parses input arguments until a standalone argument is found.
DebugUtil::DUV_DEBUG
const DUV_DEBUG
logging constant: debug messages
Definition: DebugUtil.qm.dox.h:119