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