The updateMarker function deletes the marker of the global breakpoint so
don't call that function from the marker.
Fixes: QTCREATORBUG-23107
Change-Id: I377608f1a08b61451be1fc0be5bc15252252a4a7
Reviewed-by: hjk <hjk@qt.io>
Since the distinction between global and engine
breakpoints we may not update the breakpoint marker
correctly which in turn appears as if the breakpoint
had been failed to set.
Fix this by updating the breakpoint marker already on
insertion request.
Change-Id: I7c4ed046c26667e6aa1efceb5071c12a6d1e6132
Reviewed-by: hjk <hjk@qt.io>
More in line with QFileInfo terminonlogy which appears to be
best-of-breed within Qt.
Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The update of the global came too early to properly check the
condition whether it is still used. So fully remove usage first,
then update, so the check operates on intended data.
Fixes: QTCREATORBUG-22284
Change-Id: Iecdbdc371396132c88d0918f7cb253cf2627e0e3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Visible e.g. in context menu handling of the debugger's module view.
Change-Id: I342ed262c9e3dcdf98590003a7930cb8ef4ca0d2
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
... when a breakpoint in an active engine is moved due to
code edits.
Change-Id: Iac8102b7ac0149342ccb3fd6be6bf16172683036
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Enabling or disabling a multiple break points that have
different states will trigger the soft assert for all
break points having the destination state already.
Change-Id: I61d859c0af548cb1dd9070a28c9aacee241e075b
Reviewed-by: hjk <hjk@qt.io>
... for "alien" breakpoint that legitimately jump from New to Inserted.
Change-Id: Idb8b540a119f6dbd04d86b8ce3f15c2599d4b60c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Otherwise markers will not be shown. This fixes the visual aspect of
the referenced tasks. Choosing a specific engine if more than one is
running is still not possible.
Task-number: QTCREATORBUG-21361
Task-number: QTCREATORBUG-21330
Change-Id: I5e31adf43ca8a57add83166b307434122498f1e6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This patch re-enables disabling or enabling breakpoints using
the respective keyboard shortcut.
Had been disabled since d6911fd10c.
Change-Id: Iea3ce679bafcc78910be07984fd03b4a6e66eb8b
Reviewed-by: hjk <hjk@qt.io>
We already have a concept of Context when action on editor events,
use that directly when searching an (almost) matching breakpoint
instead of translating it into breakpoint manager's interface
language.
This also centralizes the guesswork for non-exact matches in one
place, making it easier to fix currently wrong matches later.
Change-Id: I5579e7e01792d425cad4ccf1dbcbbd1bd56c84ec
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This removes the ability to have different enabled/disabled states
for the same breakpoint in concurrently running engines, but make
the behavior less surprising.
At least currently people *do* expect breakpoint changes in a running
engine to persist after the engine dies.
Change-Id: I911594765b24f2ce58f6747ae5ecab3e608882b8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
... to breakpoint and watchhandler.
More modular this way.
Change-Id: I4a45481fcc2bfde67b164bd7274fb7b2a12cb7ac
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
... so they can be reused for global/preset breakpoints later.
Change-Id: I34493f3b702605054c1ea227f56ed286eb77fcca
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This is a step towards properly supporting multiple debugger
sessions side-by-side.
The combined C++-and-QML engine has been removed, instead a
combined setup creates now two individual engines, under a single
DebuggerRunTool but mostly independent with no combined state
machine. This requires a few more clicks in some cases, but
makes it easier to direct e.g. interrupt requests to the
interesting engine.
Care has been taken to not change the UX of the single debugger
session use case if possible. The fat debug button operates
as-before in that case, i.e. switches to Interrupt if the
single active runconfiguration runs in the debugger etc.
Most views are made per-engine, running an engine creates
a new Perspective, which is destroyed when the run control dies.
The snapshot view remains global and becomes primary source
of information on a "current engine" that receives all menu
and otherwise global input.
There is a new global "Breakpoint Preset" view containing
all "static" breakpoint data. When an engine starts up it
"claims" breakpoint it believes it can handle, but operates
on a copy of the static data. The markers of the static
version are suppressed as long as an engine controls a
breakpoint (that inclusive all resolved locations), but are
re-instatet once the engine quits.
The old Breakpoint class that already contained this split
per-instance was split into a new Breakpoint and a
GlobalBreakpoint class, with a per-engine model for Breakpoints,
and a singleton model containing GlobalBreakpoints.
There is a new CppDebuggerEngine intermediate level serving as
base for C++ (or, rather, "compiled") binary debugging, i.e.
{Gdb,Lldb,Cdb}Engine, taking over bits of the current DebuggerEngine
base that are not applicable to non-binary debuggers.
Change-Id: I9994f4c188379b4aee0c4f379edd4759fbb0bd43
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Double clicking on a child break point (e.g. multi location
break point) now jumps to the respective parent break point.
Change-Id: I93497f8eec78408909dddd159002e171805814d7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Mostly nullptr instead of 0, but also a few bits of collateral damage.
Change-Id: I921991272aca921dcdecf302dfff3716e79dfc24
Reviewed-by: David Schulz <david.schulz@qt.io>
... for breakpoints that resolve to multiple locations, like templates.
Toggling is done via the the breakpoint view context menu, for now
only available with GDB and not persistent.
Change-Id: I098ae13a5518e9f671c647680f8bd4413e7e5ccc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Also, add context to connect() expressions where we are or were
capturing "this".
Change-Id: I6e006ba6f83d532478018550d148ee93eca59605
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Moving defaultToolTip and color from TextMarkRegistry to TextMark.
Allowing every instance of a TextMark object to define these
information.
Change-Id: Iec1794372cf902b34d343402074e3999e7f9faf7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>