aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/debugger')
-rw-r--r--src/plugins/debugger/debuggerstartparameters.h1
-rw-r--r--src/plugins/debugger/debuggertoolchaincombobox.cpp2
-rw-r--r--src/plugins/debugger/gdb/gdbengine.cpp4
-rw-r--r--src/plugins/debugger/gdb/remotegdbserveradapter.cpp12
4 files changed, 13 insertions, 6 deletions
diff --git a/src/plugins/debugger/debuggerstartparameters.h b/src/plugins/debugger/debuggerstartparameters.h
index 513bdea8e1b..4f5ba16ba2a 100644
--- a/src/plugins/debugger/debuggerstartparameters.h
+++ b/src/plugins/debugger/debuggerstartparameters.h
@@ -126,6 +126,7 @@ public:
ProjectExplorer::Abi toolChainAbi;
QString dumperLibrary;
+ QStringList solibSearchPath;
QStringList dumperLibraryLocations;
DebuggerStartMode startMode;
DebuggerCloseMode closeMode;
diff --git a/src/plugins/debugger/debuggertoolchaincombobox.cpp b/src/plugins/debugger/debuggertoolchaincombobox.cpp
index d5c1e1d1855..32a0eeb5bb9 100644
--- a/src/plugins/debugger/debuggertoolchaincombobox.cpp
+++ b/src/plugins/debugger/debuggertoolchaincombobox.cpp
@@ -60,7 +60,7 @@ void DebuggerToolChainComboBox::init(bool hostAbiOnly)
const ProjectExplorer::Abi hostAbi = ProjectExplorer::Abi::hostAbi();
foreach (const ProjectExplorer::ToolChain *tc, ProjectExplorer::ToolChainManager::instance()->toolChains()) {
const ProjectExplorer::Abi abi = tc->targetAbi();
- if (!hostAbiOnly || hostAbi.os() == abi.os()) { // Offer MSVC and Mingw, etc.
+ if (!hostAbiOnly || hostAbi.isCompatibleWith(abi)) {
const QString debuggerCommand = tc->debuggerCommand().toString();
if (!debuggerCommand.isEmpty()) {
const AbiDebuggerCommandPair data(abi, debuggerCommand);
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 52e8bb79403..041a5f038e9 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -5294,8 +5294,8 @@ bool GdbEngine::usesExecInterrupt() const
// debuggerCore()->boolSetting(TargetAsync)
DebuggerStartMode mode = startParameters().startMode;
- return mode == AttachToRemoteServer
- || mode == AttachToRemoteProcess;
+ return (mode == AttachToRemoteServer
+ || mode == AttachToRemoteProcess) && debuggerCore()->boolSetting(TargetAsync);
}
void GdbEngine::scheduleTestResponse(int testCase, const QByteArray &response)
diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
index 33fa272c1e1..0d17595cfc0 100644
--- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
+++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
@@ -164,7 +164,11 @@ void RemoteGdbServerAdapter::setupInferior()
{
QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state());
const DebuggerStartParameters &sp = startParameters();
-
+#ifdef Q_OS_WIN
+ #define PATHSEP ";"
+#else
+ #define PATHSEP ":"
+#endif
QString fileName;
if (!sp.executable.isEmpty()) {
QFileInfo fi(sp.executable);
@@ -175,6 +179,7 @@ void RemoteGdbServerAdapter::setupInferior()
const QByteArray gnuTarget = sp.gnuTarget.toLatin1();
const QByteArray searchPath = startParameters().searchPath.toLocal8Bit();
const QString args = sp.processArgs;
+ const QString solibSearchPath = startParameters().solibSearchPath.join(QLatin1String(PATHSEP));
if (!remoteArch.isEmpty())
m_engine->postCommand("set architecture " + remoteArch);
@@ -186,8 +191,9 @@ void RemoteGdbServerAdapter::setupInferior()
// relocate the most likely place for the debug source
m_engine->postCommand("set substitute-path /usr/src " + sysroot + "/usr/src");
}
- if (!searchPath.isEmpty())
- m_engine->postCommand("set solib-search-path " + searchPath);
+ if (!solibSearchPath.isEmpty())
+ m_engine->postCommand("set solib-search-path " + solibSearchPath.toLocal8Bit());
+
if (!args.isEmpty())
m_engine->postCommand("-exec-arguments " + args.toLocal8Bit());