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>
Both wrap the corresponding Qt class, but make sure all temporary files
or directories are created inside a "master temporary directory".
Change-Id: I55461be507c828c965224c02863ea5ed9bbf9498
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Also, remove the need to mark GDB Python commands, detect the
need to use MI on the presence of non-Pythonic letters in
the command (space and hyphen).
Plan is to reuse even more almost shared code between engines.
Change-Id: I4e00debb07f2482637930675a28f464666b59553
Reviewed-by: hjk <hjk@qt.io>
One step further to separate the debugger environment from the
inferior environment and to make it possible to configure a
working directory. Guessing one from the inferior's working
directory is not always a good idea.
Change-Id: I33d139c0f228ec0870556b82bc6aecca0a8e62d6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Only convert the raw output later in a stdOut() and stdErr() method of
the SynchronousProcessResponse.
This is necessary since we have processes that use different encodings
for different sections of the file (I am looking at you, git).
Also remove the signals for raw data on stdout/stderr, leaving only the
signals returning buffered QString lines. This should be safe, even
with UTF-16 output.
Change-Id: Ida613fa86d1468cbd33bc6b3a1506a849c2d1c0a
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
With QT_RESTRICTED_CAST_FROM_ASCII making GdbMi etc operate on
QString is feasible again. Take this as opportunity to move
debugger encoding handling closer to a 'conversion on input and
output if needed, storage in QString only' scheme.
Change-Id: I2f10c9fa8a6c62c44f4e6682efe3769e9fba30f7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Use SynchronousProcess::runBlocking in favor of SychronousProcess::run.
This avoid nested event loops which can produce really strange crashes
if not use carefully.
This patch only converts those processes that have a timeout of less
than 5 seconds or use the default timeout.
Change-Id: I9de8899dcc946af7049ea357a91972996c0256a1
Reviewed-by: Vikas Pachdha <vikas.pachdha@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
waitForFinish returns false if the process is no longer running at
the time of the call. Handle that throughout the codebase.
Change-Id: Ia7194095454e82efbd4eb88f2d55926bdd09e094
Reviewed-by: hjk <hjk@theqtcompany.com>
This is a mechanical replacement for the former executable, processArgs,
inferiorEnvironment and workingDirectory members.
Change-Id: I4160e01427ed801df9b729f1f31d0a2ca48159b5
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Even without the stack, the user can find interesting stuff by exploring
the memory, globals etc.
Change-Id: I867d26b09a45425d97c4f3ef6d0528074c25e75f
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
Since we don't keep a local queue anymore, the distinction is
no more needed. Also, this is close to the LLDB side now.
Also move remaining uses of DebuggerCommand::flags to
GdbEngine, since that's the only user.
Change-Id: I61ae0f4e5294e306ab0b202e80f27fb3e3f7a7d7
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
... instead of plain asserts. Less clutter on the user code side,
more information if it triggers.
Change-Id: I621e8adc168ceea64df6e39e0c95df4218f58d34
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Make qtcreator -debug [exe,]core=/path/to/core work again.
Change-Id: I16d1e388d74409d4deed2840dd768eab8c26cf40
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Right now, DebuggerStartParameter is part of the debugger plugin
external interface. Better not make it fatter than necessary.
Change-Id: I3b9205089f971dd314ccba1335b5ca2d4d9fe7c6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
This was a debugging aid that has not been needed for a while.
Change-Id: Ia79e8e91b6648bdb807836443b01dd325d819640
Reviewed-by: hjk <hjk@theqtcompany.com>
They had been created for use with GDB, but are more general
nowadays.
s/GdbResponse/DebuggerResponse/,
s/GdbResultClass/ResultClass, etc
Change-Id: Idfa3e280cdda882a8b3f02dff7e7d993e7e82d03
Reviewed-by: hjk <hjk@theqtcompany.com>
Nested event loops can lead to crashes, so it is better to use a dialog
which does not have have its own event loop.
Change-Id: Icd2390c9026bc1ef88e72a570df5813fe5cbdaa2
Reviewed-by: hjk <hjk121@nokiamail.com>
- added a function which tries to find the executable belonging
to a core file if the extracted path does not exist
- tries to find binaries with a relative path
- tires to remove commandline arguments, since the core
file does not store which part is the exe name (which can
contain spaces), and which are arguments
loading /QT/core which was created by "/QT/bin/exec w.." by calling
"./bin/exec with spaces" arg1 arg2 now finds the binary
==== will be split into a separate commit, included to show the
second use of the new function
LoadCoreDialog: change when ExecFilename is set from core
- only set the name if the exe exists
- if it does not exist and the previous entry does not either
then insert what was extracted from the corefile
Change-Id: I4a9846761c91ed976f3ba38a7dc756fc30ed179c
Reviewed-by: hjk <hjk121@nokiamail.com>
- the string in the gdb output by which the exec file is identified is
subject to localization. Overriding the LC_ALL variable fixes this.
Change-Id: If839ed1daec8cbc0b6a5fefcf28a4eef0423a645
Reviewed-by: hjk <hjk121@nokiamail.com>
It's unconditional nowadays, so we don't gain anything but code path
complexity from defering it.
Change-Id: Icc7d65835d1b2b76ecb64601822e0d70fd8f9f6e
Reviewed-by: hjk <hjk121@nokiamail.com>
A lot of our build system files specify unneeded include
paths. These roughly fall into the following categories:
a) Paths that are already set in more general files
such as qtcreator.pri.
b) Paths that serve no purpose at all, possibly
left over from earlier versions of the project.
c) Paths that act as workarounds for wrong include
statements of the form '#include "xyz.h"', where
xyz.h is not in the same directory as the including
file.
This patch removes such path specifications and fixes the offending
include statements from case c).
Tested on Linux, Windows and OSX with qmake and qbs.
Change-Id: I039a8449f8a65df0d616b4c08081145c18ae4b15
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Delete process when finished
* Handle unpack failure
* Support lzop on Windows (if available)
Change-Id: I8d95b77922c8b22b5874dffd8f935ff184902e12
Reviewed-by: hjk <hjk121@nokiamail.com>
This enables access to object-specific plain gdb pretty printers
which are not available before startup.
Change-Id: Icc8cbec177825d4d1adb1957a618abb33cbbf319
Reviewed-by: hjk <qthjk@ovi.com>