Commit Graph

364 Commits

Author SHA1 Message Date
hjk
4bd26c3e4b Debugger: Add ability to hide view columns
Not perfect, e.g. one would probably expect the items to
appear in the context menu of the header views, too, not
just on the main background of the view, but better than
nothing.

Task-number: QTCREATORBUG-23342
Change-Id: Ifdc44dcfd390112faa7b15bb8a51d809e42d7b29
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-12-13 08:07:31 +00:00
hjk
70aab593bd Debugger: Delete breakpoint markers on session switch
There were some left-over "ghost markers" when switching sessions,
which should be gone now.

This also pointed to a wrong use of SessionManager::aboutToUnloadSession
which mustn't save data re-created in a save/load cycle as it
is called during any session load, including the very first on startup
no such data (e.g. breakpoints) have been created yet.

Change-Id: I237a9e3500a786841618941ce85a97f7bd4f318c
Fixes: QTCREATORBUG-22856
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-11-28 09:08:51 +00:00
hjk
67ba6a5b9a Debugger: Fix conditional operator with identical true and false expressions
Change-Id: I1f85eed5355cd01590bc8cc0082f154e215a9ac3
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-11-01 08:49:39 +00:00
Eike Ziller
a546e3a9cc Merge remote-tracking branch 'origin/4.10' into 4.11
Conflicts:
	src/libs/utils/fancymainwindow.cpp
	src/plugins/projectexplorer/msvctoolchain.cpp

Change-Id: I7aaeeb4f96c95fefd4944c083c1ddf9a19cd81d6
2019-10-28 11:43:06 +01:00
David Schulz
383ea95889 Debugger: Avoid recreation of breakpoint markers
Change-Id: Ie3b160a7b7137257b2028d03878700675142102f
Reviewed-by: hjk <hjk@qt.io>
2019-10-18 12:01:06 +00:00
David Schulz
fa8ff4108f Debugger: further untangle of breakpoint item and marker
Change-Id: I9331912c1b53a0110479f46ef1e576676441ab75
Reviewed-by: hjk <hjk@qt.io>
2019-10-17 13:19:10 +00:00
David Schulz
cc1399a4b6 Debugger: Fix crash after breakpoint marker drag&drop
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>
2019-10-17 13:04:20 +00:00
hjk
50deb50069 Debugger: Introduce a checkbox
... to propagate breakpoint changes from a running debugger
back to the original preset breakpoint.

This is currently unused as some changes are already propagated,
and some not, so a bit more diligence is needed.

For now it is there to have the new label string in safely
before string freeze.

Change-Id: I8ee4d07bab5a4f66e59bf992ebfd81c56fdb3ecf
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-10-16 12:46:48 +00:00
Christian Stenger
e47a01c3cb Debugger: Update breakpoint marker earlier
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>
2019-08-12 07:52:42 +00:00
hjk
9ae2794114 Remove more deprecation warnings
Change-Id: Ie50e41737a4bf7bea41f550df7cc765267e8a144
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-05 12:51:17 +00:00
hjk
6a58666f44 More Utils::toSet/toList
... and unrelated cosmetic changes.

Change-Id: I591b17fd5289831e701b683f8fb47816efd1fa67
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-07-04 12:28:38 +00:00
Alessandro Portale
0933c20de8 connect() to ambiguous signals/slots: Replace static_cast with QOverload
Change-Id: I473d7a2a16509cee944a2a21b022a3f6f02cfd8d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-05-28 14:07:03 +00:00
hjk
473a741c9f Utils: Rename FileName to FilePath
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>
2019-05-28 12:23:26 +00:00
hjk
0a8a9f60e1 Debugger: Coordinate breakpoint rampdown
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>
2019-04-11 08:14:30 +00:00
hjk
f7c350d782 TreeView: Fix mapping to source models in case ProxyModels are involved
Visible e.g. in context menu handling of the debugger's module view.

Change-Id: I342ed262c9e3dcdf98590003a7930cb8ef4ca0d2
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-04-02 12:53:29 +00:00
Eike Ziller
04a4bacbf9 Merge remote-tracking branch 'origin/4.8'
Conflicts:
	src/plugins/coreplugin/dialogs/externaltoolconfig.ui

Change-Id: Ie38e9028cee599578c59b22325d85c097335243e
2019-01-07 13:24:12 +01:00
hjk
8669a83e16 Debugger: Update global breakpoint line and file
... when a breakpoint in an active engine is moved due to
code edits.

Change-Id: Iac8102b7ac0149342ccb3fd6be6bf16172683036
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2018-12-19 08:39:48 +00:00
Eike Ziller
3d1d9aae2e Merge remote-tracking branch 'origin/4.8'
Conflicts:
	src/plugins/winrt/winrtdevicefactory.cpp

Change-Id: I33b8697e2ebf2bea051d7f1144449e0743ee16a5
2018-11-19 10:00:18 +01:00
Christian Stenger
aab60ee75c Debugger: Silence soft assert
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>
2018-11-13 13:48:47 +00:00
Eike Ziller
3666e3aaeb Merge remote-tracking branch 'origin/4.8'
Conflicts:
	tests/unit/unittest/unittest.pro

Change-Id: I4f0ab05f96ee60900a3a35fad4c7331238367593
2018-11-09 13:30:40 +01:00
hjk
8feb11e102 Debugger: Silence breakpoint state transition warning
... for "alien" breakpoint that legitimately jump from New to Inserted.

Change-Id: Idb8b540a119f6dbd04d86b8ce3f15c2599d4b60c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-11-07 13:43:40 +00:00
Eike Ziller
1473bc5891 Merge remote-tracking branch 'origin/4.8'
Conflicts:
	src/plugins/debugger/debuggermainwindow.cpp
	src/plugins/qbsprojectmanager/qbsbuildstep.cpp
	src/plugins/winrt/winrtdevicefactory.cpp
	tests/unit/unittest/gtest-creator-printing.cpp
	tests/unit/unittest/gtest-creator-printing.h
	tests/unit/unittest/unittest.pro

Change-Id: Ie9b80b87a8a4fa81baf72a2daa7919b21371c15e
2018-11-06 09:20:00 +01:00
hjk
2556d4b44b Debugger: Implement disabling/enabling subbreakpoints with LLDB
Change-Id: Iaad8716b98d632e5a933b7f5b26549c7cb885ea7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-11-06 07:37:15 +00:00
hjk
e24335e8a6 Debugger: use requested file and line for pending breakpoints
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>
2018-11-05 15:46:03 +00:00
Eike Ziller
fd7cba88ef Merge remote-tracking branch 'origin/4.8'
Conflicts:
	doc/src/editors/creator-only/creator-code-pasting.qdoc
	src/plugins/android/androidbuildapkwidget.cpp

Change-Id: Iea8b7135643d14ffe49d10b14bedb8fa5ac48063
2018-10-24 13:58:45 +02:00
hjk
dbacbffa7c Debugger: Remove unused BreakHandler::setBreakpointEnabled()
Change-Id: Ie7ef810e72b3d02663b425c687407cdd2b0cea52
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-10-22 11:12:53 +00:00
Eike Ziller
95db30bd3a Merge remote-tracking branch 'origin/4.8'
Conflicts:
	src/plugins/debugger/debuggeritem.cpp
	tests/unit/unittest/unittest.pro

Change-Id: Id2e4e9c2bc87b2556d7c2845aea3fe2fa11b630b
2018-10-22 09:53:54 +02:00
Christian Stenger
eebfc5f5de Debugger: Remove wrong state transition
Change-Id: Ie199370e6dc9e8c3efe293be76cb89feacb8d4c5
Reviewed-by: hjk <hjk@qt.io>
2018-10-22 04:48:26 +00:00
Christian Stenger
a2a29d1861 Debugger: Re-enable breakpoint state handling with keyboard
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>
2018-10-16 12:07:33 +00:00
Eike Ziller
511bd64f3f Merge remote-tracking branch 'origin/4.8'
Change-Id: I0ff6f659b7ccd4ff5a79e422a1d54488508fe05f
2018-10-16 07:11:57 +02:00
hjk
0ebe8402c7 Debugger: Fix breakpoint disabling using context menu
Change-Id: I3fa5ef2dc123f5f7f8292147626453284c1afd76
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2018-10-15 10:56:02 +00:00
Orgad Shaneh
147a3c27c4 Debugger: Strip QLatin1* where possible
Change-Id: Idcab23875b5dc2ecf55e3303f417b995e2252720
Reviewed-by: hjk <hjk@qt.io>
2018-10-13 16:32:31 +00:00
hjk
92325c90ce Debugger: Rename snapshothandler.{cpp,h} to enginemanager.{cpp,h}
That's what they are nowadays.

Change-Id: I1bd6db18f2142ecf488eba51ca739675eac753c7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-09-28 07:38:55 +00:00
hjk
c7f0285c4c Debugger: Consolidate breakpoint search
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>
2018-09-04 13:33:29 +00:00
hjk
fa4693fd29 Debugger: Fix insertion of backend generated breakpoints
Change-Id: Ifb46995a787c111620b5270b2b60e4e7f39eb552
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-08-29 12:20:07 +00:00
hjk
9492066a31 Debugger: Identify a breakpoint's requested parameters with preset data
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>
2018-08-29 11:06:26 +00:00
hjk
a68e8c5b69 Debugger: Move session load/restore handling
... to breakpoint and watchhandler.

More modular this way.

Change-Id: I4a45481fcc2bfde67b164bd7274fb7b2a12cb7ac
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-08-29 09:38:38 +00:00
hjk
fd25bbd99d Debugger: Re-enable breakpoint enabling via gutter context menu
Task-number: QTCREATORBUG-20970
Change-Id: Ie8fc2af8e99e82018a9b4262fe6053cb714e7d60
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2018-08-24 06:20:06 +00:00
hjk
7dcfe86c34 Debugger: Re-enable breakpoint property editing before debugger start
Amends 3b5ecac23.

Task-number: QTCREATORBUG-20970
Change-Id: I8206b16bc17a4d3830b8e517c7e952efabcf4609
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2018-08-21 06:29:51 +00:00
hjk
6203fb5db1 Debugger: Make breakpoint property dialogs less dependent on engine
... so they can be reused for global/preset breakpoints later.

Change-Id: I34493f3b702605054c1ea227f56ed286eb77fcca
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2018-08-21 06:13:13 +00:00
hjk
3b5ecac238 Debugger: Make most views per-engine instead of singletons
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>
2018-08-17 12:35:15 +00:00
Alessandro Portale
0558db7b54 Debugger: Modernize
modernize-use-auto
modernize-use-nullptr
modernize-use-override
modernize-use-using
modernize-use-default-member-init
modernize-use-equals-default

Change-Id: I91a6874f0d7b94e9079ab4ef07c23c60c80be9c0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2018-07-25 12:52:43 +00:00
hjk
4feb2259d9 Debugger: Code cosmetics
Sprinkling in const and ranged for.

Change-Id: I5d11d57f64140021397c23734c7373544ebebb6f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-05-31 07:10:47 +00:00
Eike Ziller
45f8d221bf Use FileName in TextMark
Change-Id: I3666d95dc8ef3b7da099d6d30f5cb4678a349493
Reviewed-by: David Schulz <david.schulz@qt.io>
2018-05-03 06:51:47 +00:00
Tobias Hunger
980fd54ea1 Fix warnings about unused lambda captures
Change-Id: Ib9bcf180fd8ceffbf88836a62fc9532e6f7fc656
Reviewed-by: hjk <hjk@qt.io>
2018-02-21 13:06:08 +00:00
Christian Stenger
b039026214 Debugger: Handle double click of sub break points
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>
2018-02-01 11:30:17 +00:00
hjk
1b87d19a64 Debugger: Modernize
Mostly nullptr instead of 0, but also a few bits of collateral damage.

Change-Id: I921991272aca921dcdecf302dfff3716e79dfc24
Reviewed-by: David Schulz <david.schulz@qt.io>
2018-02-01 10:28:54 +00:00
hjk
7c41720479 Debugger: Allow disabling individual breakpoint locations
... 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>
2018-02-01 10:20:33 +00:00
Robert Loehning
9e066c7b17 Move HTML out of translated strings
Change-Id: I4664427086619f33e9a882eb3f0a5f2f52e1b42a
Reviewed-by: Jochen Becher <jochen_becher@gmx.de>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-01-24 10:18:28 +00:00
Ulf Hermann
47886969cc Drop unused variables and lambda captures
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>
2017-09-08 09:06:53 +00:00