diff --git a/src/plugins/baremetal/gdbserverproviderprocess.cpp b/src/plugins/baremetal/gdbserverproviderprocess.cpp index 650ce92d765..2fc59b994bb 100644 --- a/src/plugins/baremetal/gdbserverproviderprocess.cpp +++ b/src/plugins/baremetal/gdbserverproviderprocess.cpp @@ -45,8 +45,11 @@ GdbServerProviderProcess::GdbServerProviderProcess( const QSharedPointer &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 dcfbb229fb6..5dbc0da2c2e 100644 --- a/src/plugins/baremetal/gdbserverproviderprocess.h +++ b/src/plugins/baremetal/gdbserverproviderprocess.h @@ -33,6 +33,8 @@ #include +namespace Utils { class QtcProcess; } + namespace BareMetal { namespace Internal { @@ -64,7 +66,7 @@ class GdbServerProviderProcess : public ProjectExplorer::DeviceProcess qint64 write(const QByteArray &data); private: - QProcess * const m_process; + Utils::QtcProcess *m_process; }; } // namespace Internal