Merge remote-tracking branch 'origin/5.0'

Conflicts:
	src/plugins/clangtools/clangtoolssettings.cpp
	src/plugins/clangtools/executableinfo.cpp
	src/plugins/clangtools/executableinfo.h

Change-Id: Id8caf63e3e594792467d3447870086bd2d8f73b9
This commit is contained in:
Eike Ziller
2021-09-13 15:36:51 +02:00
98 changed files with 1321 additions and 445 deletions

View File

@@ -366,8 +366,11 @@ void GdbEngine::handleResponse(const QString &buff)
QString data = parser.readCString();
// On Windows, the contents seem to depend on the debugger
// version and/or OS version used.
if (data.startsWith("warning:"))
if (data.startsWith("warning:")) {
showMessage(data.mid(9), AppStuff); // Cut "warning: "
if (data.contains("is not compatible with target architecture"))
m_ignoreNextTrap = true;
}
m_pendingLogStreamOutput += data;
@@ -1270,11 +1273,12 @@ void GdbEngine::handleStop1(const GdbMi &data)
// The bandaid here has the problem that it breaks for 'next' over a
// statement that indirectly loads shared libraries
// 6.1.2010: Breaks interrupting inferiors, disabled:
// if (reason == "signal-received"
// && data.findChild("signal-name").data() == "SIGTRAP") {
// continueInferiorInternal();
// return;
// }
if (m_ignoreNextTrap && reason == "signal-received"
&& data["signal-name"].data() == "SIGTRAP") {
m_ignoreNextTrap = false;
continueInferiorInternal();
return;
}
// Jump over well-known frames.
static int stepCounter = 0;
@@ -4277,9 +4281,14 @@ void GdbEngine::debugLastCommand()
runCommand(m_lastDebuggableCommand);
}
bool GdbEngine::isLocalRunEngine() const
{
return !isCoreEngine() && !isLocalAttachEngine() && !isRemoteEngine();
}
bool GdbEngine::isPlainEngine() const
{
return !isCoreEngine() && !isLocalAttachEngine() && !isRemoteEngine() && !terminal();
return isLocalRunEngine() && !terminal();
}
bool GdbEngine::isCoreEngine() const
@@ -4300,7 +4309,7 @@ bool GdbEngine::isLocalAttachEngine() const
bool GdbEngine::isTermEngine() const
{
return !isCoreEngine() && !isLocalAttachEngine() && !isRemoteEngine() && terminal();
return isLocalRunEngine() && terminal();
}
bool GdbEngine::usesOutputCollector() const
@@ -4460,8 +4469,10 @@ void GdbEngine::setupInferior()
? QString("Going to attach to %1 (%2)").arg(attachedPID).arg(attachedMainThreadID)
: QString("Going to attach to %1").arg(attachedPID);
showMessage(msg, LogMisc);
handleInferiorPrepared();
const QString executable
= runParameters().inferior.command.executable().toFileInfo().absoluteFilePath();
runCommand({"-file-exec-and-symbols \"" + executable + '"',
CB(handleFileExecAndSymbols)});
} else if (isPlainEngine()) {
setEnvironmentVariables();
@@ -4710,7 +4721,7 @@ void GdbEngine::handleFileExecAndSymbols(const DebuggerResponse &response)
notifyInferiorSetupFailedHelper(msg);
}
} else if (isPlainEngine()) {
} else if (isLocalRunEngine()) {
if (response.resultClass == ResultDone) {
handleInferiorPrepared();