consoleprocess: support Terminal.app on mac
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>
Showing
- share/qtcreator/scripts/openTerminal.command 14 additions, 7 deletionsshare/qtcreator/scripts/openTerminal.command
- src/libs/utils/consoleprocess.cpp 2 additions, 0 deletionssrc/libs/utils/consoleprocess.cpp
- src/libs/utils/consoleprocess.h 9 additions, 2 deletionssrc/libs/utils/consoleprocess.h
- src/libs/utils/consoleprocess_p.h 8 additions, 0 deletionssrc/libs/utils/consoleprocess_p.h
- src/libs/utils/consoleprocess_unix.cpp 70 additions, 22 deletionssrc/libs/utils/consoleprocess_unix.cpp
- src/libs/utils/consoleprocess_win.cpp 14 additions, 3 deletionssrc/libs/utils/consoleprocess_win.cpp
- src/libs/utils/process_stub_unix.c 153 additions, 57 deletionssrc/libs/utils/process_stub_unix.c
- src/plugins/debugger/cdb/cdbengine.cpp 1 addition, 1 deletionsrc/plugins/debugger/cdb/cdbengine.cpp
- src/plugins/debugger/gdb/termgdbadapter.cpp 1 addition, 1 deletionsrc/plugins/debugger/gdb/termgdbadapter.cpp
Loading
Please register or sign in to comment