On modern linux distributions (Ubuntu >= 10.10, Debian >= Wheezy),
trying to debug a terminal application fails, with
"ptrace: Operation not permitted".
In order to allow the debugger to attach to the created process, the
process itself needs to inform the kernel of the debugging process.
Task-number: QTCREATORBUG-3509
Change-Id: I68670426fad18cbe3b7cce9d57633e58e631e025
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
* If Creator is not executed from terminal, this value is missing.
* If it is executed from a terminal of another type than the stub
it might be wrong.
Change-Id: Ia6bd1dd59be04e01398ed5cdffff3080539b10ef
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The code still assumes host == target in some places...
Change-Id: Ief495df6ff5fbff890fc46d42a6b29eee3a1ed2c
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
This is used to get a platform-agnostic handle on "command line
arguments". It essentially wraps a single QString on Windows,
and a QStringList everywhere else.
As a consequence, several occurrences of #ifdef Q_OS_*
can be removed from the codebase.
Change-Id: Ic93118c1bd0bce0ebb58f416d395dbaebb861772
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Ensure that we read before zeroing the pointer to the stubSocket
and not after.
Change-Id: If9d6f11916e644be96ed88db6a2595509f177233
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Correctly returns true when the stubSocket is connected but the
process has already returned
Change-Id: Ie687e4109254cbe3a3a60e95bf182ce3b835e73a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Forward-declare QGraphicsOpacityEffect in DetailsButton,
QProcessEnvironment in Environment, QFileInfo in fileutils,
QUrl in IWelcomePage, FancyLineEdit in PathChooser and
remove unneeded headers.
Change-Id: I7d5f273530dd2059bbdaf0899f0a3bc7e49e8482
Reviewed-by: hjk <hjk121@nokiamail.com>
Distinguishes the process that starts the terminal from the stub
process, as on mac to support Terminal.app they are different.
Handle the stub not through the process that starts the terminal,
but through the local socket (on *nix).
Replace the blocking wait(...) in the main thread, with a nonblocking
wait in the signal handler when receiving a SIGCHLD, to leave the
main thread able to handle communication with creator.
This change allows the use of terminal emulator commands
that share a single instance or that fork.
So this is also the real fix for QTCREATORBUG-1633 on linux.
If creator crashes the stub and the debugged program live on.
This was done on purpose, it could be changed if considered better.
Task-number: QTCREATORBUG-6371
Task-number: QTCREATORBUG-1633
Change-Id: I4d4fb3a67b1987f4e46e2c603dcefe8c15152ad2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
e8b5c6dfcca3fc139049136b42459e7840efed7 :
Provide terminal emulator functionality in ConsoleProcess for
Windows as well.
e833b794b3 :
Use Core::Id().
Change-Id: Idad2bd2180e9a5dd2d1266496e340726435835d3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Change the behaviour of defaultTerminalEmulator() to already
return the run option in line with terminalEmulator().
Change the QLineEdit in settings to an editable
combo offering the available terminals.
Change-Id: I333ef08ad06934bcd9fcafb50ff1eced1af6293a
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@nokia.com>
The class' member functions are intended to be used
instead of the Q_OS_* macros in all contexts where
the latter are not syntactically required.
This lowers the likelihood of changes made on one
platform breaking the build on another, e.g. due to
the code model missing symbols in #ifdef'ed out code
when refactoring.
Change-Id: I4a54788591b4c8f8d589b8368a6c683d4155c9fa
Reviewed-by: hjk <qthjk@ovi.com>
Getting the #include directives ready for Qt5. This includes the
new-project wizards.
Change-Id: Ia9261f1e8faec06b9285b694d2b7e9a095978d2b
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
purge abstractprocess and winguiprocess. they serve no purpose.
applications can have stdio on windows as well, in addition to the
windows debug channel.
Task-number: QTCREATORBUG-4822
get away from argument stringlists. instead, use native shell command
lines which support quoting/splitting, environment variable expansion
and redirections with well-understood semantics.
Task-number: QTCREATORBUG-542
Task-number: QTCREATORBUG-1564