forked from qt-creator/qt-creator
Debugger: Transform a few fields of DebuggerRunParameters
Transform macroExpander, exitCode, testCase. Task-number: QTCREATORBUG-29168 Change-Id: Ibf6398ecc691191646ae84655802abe829793736 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -137,7 +137,7 @@ DebuggerRunParameters DebuggerRunParameters::fromRunControl(ProjectExplorer::Run
|
||||
params.m_runAsRoot = runAsRootAspect->value;
|
||||
|
||||
params.setSysRoot(SysRootKitAspect::sysRoot(kit));
|
||||
params.macroExpander = runControl->macroExpander();
|
||||
params.m_macroExpander = runControl->macroExpander();
|
||||
params.m_debugger = DebuggerKitAspect::runnable(kit);
|
||||
params.m_cppEngineType = DebuggerKitAspect::engineType(kit);
|
||||
params.m_version = DebuggerKitAspect::version(kit);
|
||||
@@ -1157,7 +1157,7 @@ QString DebuggerEngine::stateName(int s)
|
||||
|
||||
void DebuggerEngine::notifyExitCode(int code)
|
||||
{
|
||||
d->m_runParameters.exitCode = code;
|
||||
d->m_runParameters.setExitCode(code);
|
||||
}
|
||||
|
||||
void DebuggerEngine::showStatusMessage(const QString &msg, int timeout) const
|
||||
@@ -2133,7 +2133,7 @@ bool DebuggerEngine::canDisplayTooltip() const
|
||||
|
||||
QString DebuggerEngine::expand(const QString &string) const
|
||||
{
|
||||
return runParameters().macroExpander->expand(string);
|
||||
return runParameters().macroExpander()->expand(string);
|
||||
}
|
||||
|
||||
QString DebuggerEngine::nativeStartupCommands() const
|
||||
@@ -3111,7 +3111,7 @@ void CppDebuggerEngine::validateRunParameters(DebuggerRunParameters &rp)
|
||||
globalRegExpSourceMap.reserve(sourcePathMap.size());
|
||||
for (auto it = sourcePathMap.begin(), end = sourcePathMap.end(); it != end; ++it) {
|
||||
if (it.key().startsWith('(')) {
|
||||
const QString expanded = rp.macroExpander->expand(it.value());
|
||||
const QString expanded = rp.macroExpander()->expand(it.value());
|
||||
if (!expanded.isEmpty())
|
||||
globalRegExpSourceMap.push_back({QRegularExpression(it.key()), expanded});
|
||||
}
|
||||
|
@@ -233,12 +233,13 @@ public:
|
||||
bool isCppDebugging() const;
|
||||
bool isNativeMixedDebugging() const;
|
||||
|
||||
const Utils::MacroExpander *macroExpander = nullptr;
|
||||
const Utils::MacroExpander *macroExpander() const { return m_macroExpander; }
|
||||
|
||||
std::optional<int> exitCode = {};
|
||||
void setExitCode(int code) { m_exitCode = code; }
|
||||
std::optional<int> exitCode() const { return m_exitCode; }
|
||||
|
||||
// For Debugger testing.
|
||||
int testCase = 0;
|
||||
void setTestCase(int testCase) { m_testCase = testCase; }
|
||||
int testCase() const { return m_testCase; }
|
||||
|
||||
QStringList validationErrors;
|
||||
|
||||
@@ -331,6 +332,11 @@ private:
|
||||
|
||||
QString m_crashParameter; // Used by AttachCrashedExternal.
|
||||
bool m_nativeMixedEnabled = false;
|
||||
|
||||
const Utils::MacroExpander *m_macroExpander = nullptr;
|
||||
std::optional<int> m_exitCode = {};
|
||||
|
||||
int m_testCase = 0; // For Debugger testing.
|
||||
};
|
||||
|
||||
namespace Internal {
|
||||
|
@@ -103,11 +103,6 @@ public:
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
void DebuggerRunTool::setTestCase(int testCase)
|
||||
{
|
||||
m_runParameters.testCase = testCase;
|
||||
}
|
||||
|
||||
void DebuggerRunTool::addQmlServerInferiorCommandLineArgumentIfNeeded()
|
||||
{
|
||||
d->addQmlServerInferiorCommandLineArgumentIfNeeded = true;
|
||||
@@ -502,11 +497,11 @@ void DebuggerRunTool::handleEngineFinished(DebuggerEngine *engine)
|
||||
{
|
||||
engine->prepareForRestart();
|
||||
if (--d->engineStopsNeeded == 0) {
|
||||
QString cmd = m_runParameters.inferior().command.toUserOutput();
|
||||
QString msg = engine->runParameters().exitCode // Main engine.
|
||||
const QString cmd = m_runParameters.inferior().command.toUserOutput();
|
||||
const QString msg = engine->runParameters().exitCode() // Main engine.
|
||||
? Tr::tr("Debugging of %1 has finished with exit code %2.")
|
||||
.arg(cmd)
|
||||
.arg(*engine->runParameters().exitCode)
|
||||
.arg(*engine->runParameters().exitCode())
|
||||
: Tr::tr("Debugging of %1 has finished.").arg(cmd);
|
||||
appendMessage(msg, NormalMessageFormat);
|
||||
reportStopped();
|
||||
|
@@ -32,8 +32,6 @@ public:
|
||||
|
||||
void setUseDebugServer(Utils::ProcessHandle attachPid, bool essential, bool useMulti);
|
||||
|
||||
void setTestCase(int testCase);
|
||||
|
||||
void kickoffTerminalProcess();
|
||||
void interruptTerminal();
|
||||
|
||||
|
@@ -110,7 +110,7 @@ void DebuggerUnitTests::testStateMachine()
|
||||
|
||||
DebuggerRunParameters &rp = debugger->runParameters();
|
||||
rp.setInferior(rc->runnable());
|
||||
debugger->setTestCase(TestNoBoundsOfCurrentFunction);
|
||||
rp.setTestCase(TestNoBoundsOfCurrentFunction);
|
||||
|
||||
connect(debugger, &DebuggerRunTool::stopped,
|
||||
&QTestEventLoop::instance(), &QTestEventLoop::exitLoop);
|
||||
|
@@ -3813,7 +3813,7 @@ static SourcePathMap mergeStartParametersSourcePathMap(const DebuggerRunParamete
|
||||
for (auto it = in.constBegin(), end = in.constEnd(); it != end; ++it) {
|
||||
// Entries that start with parenthesis are handled in CppDebuggerEngine::validateRunParameters
|
||||
if (!it.key().startsWith('('))
|
||||
rc.insert(it.key(), sp.macroExpander->expand(it.value()));
|
||||
rc.insert(it.key(), sp.macroExpander()->expand(it.value()));
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
@@ -4308,7 +4308,7 @@ bool GdbEngine::usesTargetAsync() const
|
||||
|
||||
void GdbEngine::scheduleTestResponse(int testCase, const QString &response)
|
||||
{
|
||||
if (!m_testCases.contains(testCase) && runParameters().testCase != testCase)
|
||||
if (!m_testCases.contains(testCase) && runParameters().testCase() != testCase)
|
||||
return;
|
||||
|
||||
int token = currentToken() + 1;
|
||||
|
Reference in New Issue
Block a user