Aim is to replace it with its ProjectExplorer::RunControl base.
Change-Id: I30f837050e7c016887dc4b6cfef10b947f4f88ed
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This essentially just puts the data members and most of the original
interface on the proper, i.e. the 'target', side of the tool/target
divide. Since the SimpleTargetRunner base already has an
ApplicationLauncher member, this can be used directly.
State handling and coordination between tool and target runner parts
stays as before for now, with unchanged 'custom' transition logic.
The plan here is to remove the custom state handling later, including
the two remaining cases of direct targetRunner->toolRunner calling
(startExecution, and adapterSetupFailed) for which this patch here
temporarily uses signal/slot connections.
Change-Id: I664f2e333b48b582befd0531a17d4008acac7c4c
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
It's tool specific, so put it into the tool (only) related code.
The additional level of indirection will go again, plus the original
one will be removed once the *DebugSupport classes can directly
use DebuggerRunTool as base.
Change-Id: Ieaa386a0f7d724b09cedaaba8fb7d1e6dc4ad55b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
That's a good first approximation and often enough all that is needed.
Change-Id: If54cdb0e98cda94bc4a4ef24fcc12c78018c4dbe
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This continues the quest started with eb0b0f944.
This also moves the AnalyzerRunControl::starting signal to the
base, similar to the already present started and finished
signals. Moving emission of the signal to the base is left
to a follow-up patch to keep this here small.
Change-Id: I12e04823df22e7667a4d0a9ee7412153180c60cc
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Add a hook to augment a runnable by derived classes in order to
remove the code duplication in qdbdevicedebugsupport.cpp.
Change-Id: Ia374e45ce1c58f751cec2cd1ff2ee324c010afe3
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Treat ApplicationLauncher as a special case of a DeviceApplicationRunner
with an implicit desktop device.
As a first step, lump the two implementations together.
Change-Id: Ifa3ea3f38d320023050378555e2d256e762b6683
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
In preparation of merging the class with LocalApplicationLauncher.
Change-Id: I190f8da34a2420061f05ccf4a9fdd428c2a2c57b
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Rename the "GatheringPorts" stage to the more generic
"GatheringResources", and don't do it by default on
handleRemoteSetupRequested(). Also, drop a few asserts that tested
specifically for QML Profiler.
Change-Id: I53c3182d237f53e6dda20cd1c856e7e5f951e90e
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This solves the ambiguity between 0 and -1 being the "invalid" port.
Change-Id: I3bac11dd4117bb1820fbd58186699925b73df1c5
Reviewed-by: hjk <hjk@theqtcompany.com>
This is almost uniformly used everywhere else.
Change-Id: I1ef9abb24066b21652aeb994b18ea3e19f48b3c6
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
The cases handled here are later handled using generic code in
DebuggerRunControlCreator::enrich().
Change-Id: I03de1d5378718019afdb046f4446bb46a97ddee6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
We have tcp, local, and native by now. We have to expose that in a
clean way.
Change-Id: I0ce7be693aa7f47ebea7abe435a224a176b6c94b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
The services need to be loaded before the first QML engine is created.
The first QML engine may be created before a client connects. When the
JavaScript debug service is loaded the engine is put into interpreter
mode as we don't support debugging in JIT mode. Profiling, however
should be done in JIT mode, whenever possible.
Thus, in order to avoid the loading of unnecessary plugins and to get
better results from the QML profiler we tell the debug server which
services we expect, even before the client connects. Qt 5.6 will support
additional command line arguments to specify the services and this
change uses them.
Change-Id: I6dcee016c39995e9adada6eaf0e39d8299c9b7e7
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
- Move sysRoot, debuggerCommand, targetAbi to DebuggerRunParameters,
they are always the one coming from the kit.
- Move projectSource{Directory,Files} to DebuggerRunParameters,
they are alway coming from the runConfiguration's project
- Pass RunConfiguration always as separate parameter, that's
what related code does.
Change-Id: I9965a052237af53fa2d170701bc88b552cab12ed
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Mostly done using the following ruby script:
Dir.glob('**/*.cpp').each { |file|
next if file =~ %r{src/shared/qbs|/qmljs/}
s = File.read(file)
s.scan(/^using namespace (.*);$/) {
ns = $1
t = s.gsub(/^(.*)\b#{ns}::((?!Const)[A-Z])/) { |m|
before = $1
char = $2
if before =~ /"|\/\/|\\|using|SIGNAL|SLOT|Q_/
m
else
before + char
end
}
if t != s
puts file
File.open(file, 'w').write(t)
end
}
}
Change-Id: Id48e46fdfed83b82071551f4375fab3310ed1f6e
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
There are too many setup without support for --once.
Change-Id: I172b8b8d58a3960d9d93b48e692e612b7627ba56
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Tim Sander <tim@krieglstein.org>
The QML part was broken due to recent changes relating to gdbserver
"multi" mode.
Task-number: QTCREATORBUG-12928
Change-Id: Ia806f0cbfedd6961138f7cd89a0387bd851ff83e
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
Was broken by 162d0e3d.
Task-number: QTCREATORBUG-12718
Change-Id: I30cc8a8df89e4e0b0ffbd4c045a0b9d87abb8823
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Adds a generic interface (AbstractRemoteLinuxRunConfiguration), so plugins
can ship a custom remote runconfig.
Change-Id: I4ef8e39c4c69224d4e55224c782f3d544f10c945
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Add -qmljsdebugger= argument to command line, like we do for other
devices, too.
Task-number: QTCREATORBUG-11553
Change-Id: I81f9b2fde3d734cd0fc04df9d953158884e0f241
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Jonathan Liu <net147@gmail.com>
This helps in situation where the location of the gdbserver
installation is not under the control of the user and he
also can't tweak path settings on the device.
Change-Id: Iab5bbfef765879bf59930cc416385c692056da93
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Use setBuildDirectory() in the different BuildConfigurations instead
of reimplementing that over and over again.
Change-Id: Ic355fdb4624c71667ce470b3e2865c9a8722ef09
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Provide a QProcess-like abstraction that can be used
to implement processes running locally or on a remote
device. Objects of a concrete class implementing the functionality
are created by IDevice objects.
Current implementations are:
- Local execution (QProcess-based), provided via the DesktopDevice.
- Remote execution via SSH.
- A specialized case of the former for remote Linux systems (provided by
LinuxDevice).
The latter is already being used in a number of places. As a result, lots of
code dealing with details such as setting the remote environment could be
moved to a central location. These things are no longer the concern of whoever
is wishing to run a remote process.
Change-Id: I919260ee6e77a020ca47226a4a534e7b8398106f
Reviewed-by: hjk <hjk121@nokiamail.com>
Fix broken debug and profiling support on remote linux.
Change-Id: Ic4173a47b8fd450a92407a66fa338c18f7062736
Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
NOTE: Next patch will be "Move DRCA to Debugger plugin" and is
needed to make this functional.
Change-Id: Ie405a0e4fbdc0fb35ff16d34c725e7aee5153a4a
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Ran script to remove inludes on a trial-and-error basis and
manually corrected it.
Change-Id: Ie7559562218ecab65da17f58e3515556a4a1d5c5
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Only check whether we are generally responsible for the given type of
run configuration. Delay the other checks to a point where we can give a
meaningful error message to the user.
Task-number: QTCREATORBUG-6330
Change-Id: I9c8419da7780ebe17ff853bcae3de14b9cb66b71
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>