diff --git a/src/plugins/baremetal/gdbserverproviderprocess.cpp b/src/plugins/baremetal/gdbserverproviderprocess.cpp index 650ce92d765bffe4b33abc1b34676f807c5e0e46..2fc59b994bb12fb2aa372b64c4dbda9eb9141240 100644 --- a/src/plugins/baremetal/gdbserverproviderprocess.cpp +++ b/src/plugins/baremetal/gdbserverproviderprocess.cpp @@ -45,8 +45,11 @@ GdbServerProviderProcess::GdbServerProviderProcess( const QSharedPointer<const ProjectExplorer::IDevice> &device, QObject *parent) : ProjectExplorer::DeviceProcess(device, parent) - , m_process(new QProcess(this)) + , m_process(new Utils::QtcProcess(this)) { + if (Utils::HostOsInfo::isWindowsHost()) + m_process->setUseCtrlCStub(true); + connect(m_process, SIGNAL(error(QProcess::ProcessError)), SIGNAL(error(QProcess::ProcessError))); connect(m_process, SIGNAL(finished(int)), SIGNAL(finished())); @@ -62,7 +65,10 @@ GdbServerProviderProcess::GdbServerProviderProcess( void GdbServerProviderProcess::start(const QString &executable, const QStringList &arguments) { QTC_ASSERT(m_process->state() == QProcess::NotRunning, return); - m_process->start(executable, arguments); + QString args; + Utils::QtcProcess::addArgs(&args, arguments); + m_process->setCommand(executable, args); + m_process->start(); } void GdbServerProviderProcess::interrupt() diff --git a/src/plugins/baremetal/gdbserverproviderprocess.h b/src/plugins/baremetal/gdbserverproviderprocess.h index dcfbb229fb6f4dace662af2a08ab4c19ea74e92f..5dbc0da2c2ecc3061b2a65ac638ab3b705327ce8 100644 --- a/src/plugins/baremetal/gdbserverproviderprocess.h +++ b/src/plugins/baremetal/gdbserverproviderprocess.h @@ -33,6 +33,8 @@ #include <projectexplorer/devicesupport/deviceprocess.h> +namespace Utils { class QtcProcess; } + namespace BareMetal { namespace Internal { @@ -64,7 +66,7 @@ public: qint64 write(const QByteArray &data); private: - QProcess * const m_process; + Utils::QtcProcess *m_process; }; } // namespace Internal