... 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>
Make it return 'this' if 'this' is the master engine itself.
Adapt users.
Also do not let the QmlEngine try to beginConnection() when
the combined engine was isDying() already.
Change-Id: I308deae14a3c4966be381f321c0d9dfaf82c40d6
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
From several places in DebuggerEngine::* to one place in
DebuggerEnginePrivate.
Change-Id: Ic87110a11087e338cc9a6b66ea30ea2259861d9e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
... into a EngineShutdownFinished. They were never handled differently,
and the only option is to proceed to DebuggerFinished anyway. So
simplify the state machine a bit.
Change-Id: Ied3be86fff6750abca578dc6788e4be1d895692b
Reviewed-by: David Schulz <david.schulz@qt.io>
It was needed in the past to trigger e.g. gdbserver setup in
remote cases which is nowadays handled by separate RunWorkers.
Change-Id: I30bce071dab0779cce2e7abef7b31550d8539461
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Effective functionality is unchanged, this only avoids warnings
about InferiorSetupRequested -> InferiorSetupRequested transitions
in the slave engine.
Change-Id: I727a271e105df69d18232854a7828960f40c0574
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This reverts most of 4977c915 and applies the same pattern for
setupEngine. Turns out that the removal was premature due
to the special needs of Android setup.
Task-number: QTCREATORBUG-19199
Change-Id: I4e2ff4f34a842f3296999a0651e7e8fd6470198c
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This message had been displayed on the Application Output pane before.
Restore this behavior which broke with 597488be.
Change-Id: I29dcae877f2f19bce05e0ec1f32274b1e7cca25f
Reviewed-by: hjk <hjk@qt.io>
I doubt this has been used in the last five years.
Change-Id: Ia81cacfead1d15f77cb7e1e438ebcd59a238af70
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Parts of the Debugger engine rampdown mechanisms are
essentially one code path now, don't distribute that
over four classes.
Change-Id: I4c6edbc0db94d1f658b0c1d9c154552f286db876
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
De-virtualize requestInterruptInferior() and let always
the master engine react to the request. interruptInferior()
diverts to the active slave in case of the combined engine.
Change-Id: I5d62cf9379c8a452132827897a9ac51e4027f595
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This removes the setupSlaveInferior() synchronization point which
wasn't really needed anymore as it was always triggered in
response to a notifyEngineSetupOk() of the master engine.
Change-Id: I24faec36b180fa961e10dfd88fe4d874f7310140
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Each engine has now the RunTool pointer, not just the master.
Change-Id: I6bab026998d5da5da82224bfaf4a93d3cfb3a898
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The only use left was a not-so-important debug message.
Change-Id: I91bd1b744fb2f173037777461dd15e7720421ccc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The functionality has been needed for asynchronous processing
which are in RunWorkers nowadays, where the functionality is
provided by the general RunControl framework.
Change-Id: Id18f693935cd6faf5b25883dfeaace0dd691f6a7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The idea is that they shouldn't change after start() to
be re-usable for an additional run later.
Change-Id: I272fc975657b0d8b5b13a07d58bd0b626868d32e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
... and apply even more force on the second trying by forcing
ramp down of the runControl itself instead of hoping that it
would pick up hints.
Change-Id: I9d0f4130cb9a137b91c9fa81c3d255f236f98be0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
There was almost 1:1 overlap with DebuggerRunTool::is{Cpp,Qml}Debugging,
use one version only.
Change-Id: I4a8f2b7005d3f2e440cdab3eaf6ac476af894308
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The users (typically target specific DebuggerRunTool derived classes)
are meant to use the individual setter functions nowadays, not the set
up the full structure, so the members are a true implementation
detail now.
Change-Id: Ida04801e3230a2fe8bbadde8845e58c3077c87a5
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
It is still needed with LLDB.
Task-number: QTCREATORBUG-18723
Change-Id: If78dcbf8e074add969c403c37193c9f4ce857625
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
... and replace it by direct uses of ProcessHandle::activate().
Change-Id: I7beffba7bfbeff72a81b8699ff54a311a74ce1a3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Aborting a core dump debugging is a valid state
* Do not try to abort more than once (happens on shutdown)
Change-Id: I075409b3fa1231420fcd72706b18eaa0383fd4f2
Reviewed-by: hjk <hjk@qt.io>
Not needed anymore in the world of RunWorkers.
Change-Id: Id7fb24fece6acb03de12f2677dd99a05c513e7a4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Note that this changes the startup timing in the StartupOnNetwork
case slightly, as the application launch is now triggered in
parallel with the gdb launch.
Change-Id: Iaa0b60b8c478eb47abb6e93fbd3b326e0acdd13b
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This moves all of the RunControl implementation into a single
RunWorker, not yet splitting it up into separate RunWorkers
which is the final goal of this series.
Change-Id: I7373105603505aa4fffd7fe5ff0145f0128b34bc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
*** UNEXPECTED STATE TRANSITION: "State changed from DebuggerFinished(22) to DebuggerFinished(22) [master]"
Change-Id: Iddacafbe337b95aa441aecbaf3ebf85c08a83d81
Reviewed-by: hjk <hjk@qt.io>
There were only two used target states, and in case of mixed
debugging all parts of the machinery better agree on the
direction. So one bool in the (shared) runTool is sufficient.
Change-Id: Iffbf1651b82dde707cfc37d8da9d3da573b34b76
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The parameters belong to the run control, they should not
be triplicated in case of a combined engine.
Change-Id: I4dd84220edbd7a44b902cc52627fe01d0568db75
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This increases re-usability of activities like 'port gathering',
and makes their use less dependent on actual device implementations.
Change-Id: I017cb74874f2b38c487ba2d03906a675d5618647
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Forward all tool and target activities to run control, and initiate
further state transitions (only) from there. Also, make sure
tool/target's on finished() triggered on all finishing code paths.
After that, the base state handling is sufficient to handle remote linux
running and debugging.
Change-Id: I0150ef249c9ad0b7b8ac7192be6dc860c9ca8fc5
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Add some customization hooks to make tools aware of target errors
and vice versa.
Change-Id: I4d815087297a3fa1d1d6d52daeed7c4ae0f624bf
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
'prepared' got renamed to 'reportPrepared' in the mean time.
Change-Id: I2426e8ab156df642525d42feeedcd3692c7c8ac8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Aim is to replace it with its ProjectExplorer::RunControl base.
Change-Id: I30f837050e7c016887dc4b6cfef10b947f4f88ed
Reviewed-by: Christian Stenger <christian.stenger@qt.io>