Envision
A visual programming IDE for object-oriented languages
|
Public Types | |
enum class | BreakpointAction : int { Resume , Stop } |
Indicates wether we should resume after the breakpoint or not. More... | |
using | BreakpointId = int |
The type of a breakpoint id. More... | |
using | BreakpointListener = std::function< BreakpointAction(Model::Node *, const BreakpointEvent &)> |
enum class | BreakpointType : int { Internal , User } |
Type of a Breakpoint: Internal means the user will not see the breakpoint. More... | |
using | ProgramExitSingleShot = std::function< void()> |
using | ValueHandler = std::function< void(JavaDebugger *, Values, QList< Probes::ValueCalculator >, PlotOverlay *)> |
Public Member Functions | |
BreakpointId | addBreakpoint (Model::Node *location, BreakpointType type) |
Adds a new breakpoint at the given location and with the given type. More... | |
void | addBreakpointListener (qint64 breakpointId, BreakpointListener listener) |
void | addProgramExitLister (ProgramExitSingleShot listener) |
Register a listener for the next program exit. More... | |
Interaction::CommandResult * | debugTree (Model::TreeManager *manager, const QString &pathToProjectContainerDirectory) |
Starts a debug session for the current project. More... | |
Interaction::CommandResult * | probe (OOVisualization::VStatementItemList *itemList, const QStringList &arguments, int itemIndex) |
void | removeBreakpoint (BreakpointId breakpointId) |
Removes the breakpoint with the id breakpointId and any BreakpointListeners associated with it. More... | |
bool | resume (Visualization::Item *target, QKeyEvent *event) |
bool | step (Visualization::Item *target, QKeyEvent *event) |
bool | suspend (Visualization::Item *target, QKeyEvent *event) |
bool | toggleBreakpoint (Visualization::Item *target, QKeyEvent *event) |
bool | trackVariable (Visualization::Item *target, QKeyEvent *event) |
Static Public Member Functions | |
static JavaDebugger & | instance () |
Private Attributes | |
QSet< Model::Node * > | breakOnLoadClasses_ |
QMultiHash< Model::Node *, BreakpointId > | breakpointIds_ |
QHash< qint64, BreakpointListener > | breakpointListeners_ |
Visualization::Item * | currentLineItem_ {} |
qint64 | currentThreadId_ {} |
DebugConnector | debugConnector_ |
QVector< ProgramExitSingleShot > | exitListeners_ |
BreakpointId | nextBreakpointId_ {0} |
QMultiHash< Model::Node *, std::shared_ptr< VariableObserver > > | nodeObservedBy_ |
QMultiHash< Model::Node *, ProbeVisualization > | probes_ |
QHash< qint32, Model::Node * > | setBreakpoints_ |
QHash< Model::Node *, TrackedVariable > | trackedVariables_ |
QSet< Model::Node * > | unsetBreakpoints_ |
QHash< Model::Node *, UserVisibleBreakpoint > | userBreakpoints_ |
DebugUtils | utils_ {&debugConnector_} |
Static Private Attributes | |
static const QString | BREAKPOINT_OVERLAY_GROUP {"Breakpoint overlay"} |
static const QString | CURRENT_LINE_OVERLAY_GROUP {"CurrentLine"} |
static const QString | MONITOR_OVERLAY_GROUP {"MonitorOverlay"} |
static const QString | PLOT_OVERLAY_GROUP {"PlotOverlay"} |
using OODebug::JavaDebugger::BreakpointId = int |
The type of a breakpoint id.
using OODebug::JavaDebugger::BreakpointListener = std::function<BreakpointAction (Model::Node*, const BreakpointEvent&)> |
using OODebug::JavaDebugger::ProgramExitSingleShot = std::function<void ()> |
using OODebug::JavaDebugger::ValueHandler = std::function<void(JavaDebugger*, Values, QList<Probes::ValueCalculator>, PlotOverlay*)> |
|
strong |
|
strong |
|
private |
JavaDebugger::BreakpointId OODebug::JavaDebugger::addBreakpoint | ( | Model::Node * | location, |
BreakpointType | type | ||
) |
Adds a new breakpoint at the given location and with the given type.
Returns the id of this breakpoint, the id is always greater than 0.
|
private |
|
inline |
|
inline |
Register a listener for the next program exit.
Once the event happened the listener will be destroyed and not called in any subsequent event.
|
private |
|
private |
Interaction::CommandResult * OODebug::JavaDebugger::debugTree | ( | Model::TreeManager * | manager, |
const QString & | pathToProjectContainerDirectory | ||
) |
Starts a debug session for the current project.
Returns if everything was okay in a CommandResult.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
static |
|
private |
Interaction::CommandResult * OODebug::JavaDebugger::probe | ( | OOVisualization::VStatementItemList * | itemList, |
const QStringList & | arguments, | ||
int | itemIndex | ||
) |
void OODebug::JavaDebugger::removeBreakpoint | ( | BreakpointId | breakpointId | ) |
Removes the breakpoint with the id breakpointId and any BreakpointListeners associated with it.
|
private |
|
private |
|
private |
bool OODebug::JavaDebugger::resume | ( | Visualization::Item * | target, |
QKeyEvent * | event | ||
) |
bool OODebug::JavaDebugger::step | ( | Visualization::Item * | target, |
QKeyEvent * | event | ||
) |
bool OODebug::JavaDebugger::suspend | ( | Visualization::Item * | target, |
QKeyEvent * | event | ||
) |
bool OODebug::JavaDebugger::toggleBreakpoint | ( | Visualization::Item * | target, |
QKeyEvent * | event | ||
) |
|
private |
bool OODebug::JavaDebugger::trackVariable | ( | Visualization::Item * | target, |
QKeyEvent * | event | ||
) |
|
private |
|
private |
|
staticprivate |
|
private |
|
private |
|
staticprivate |
|
private |
|
private |
|
private |
|
private |
|
staticprivate |
|
private |
|
private |
|
staticprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |