Debugger: Add convenience function to pass lists of strings

... to *bridge.py and adjust surrounding code.

Change-Id: I398ecf10a6b9c76ebf5683d2f3a6c28b57343663
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
hjk
2016-12-07 13:31:10 +01:00
parent 1bce506552
commit b99cb464fa
3 changed files with 12 additions and 11 deletions

View File

@@ -753,11 +753,19 @@ void DebuggerCommand::arg(const char *name, const char *value)
void DebuggerCommand::arg(const char *name, const QList<int> &list) void DebuggerCommand::arg(const char *name, const QList<int> &list)
{ {
QJsonArray numbers; QJsonArray numbers;
foreach (int item, list) for (int item : list)
numbers.append(item); numbers.append(item);
args = addToJsonObject(args, name, numbers); args = addToJsonObject(args, name, numbers);
} }
void DebuggerCommand::arg(const char *name, const QStringList &list)
{
QJsonArray arr;
for (const QString &item : list)
arr.append(toHex(item));
args = addToJsonObject(args, name, arr);
}
void DebuggerCommand::arg(const char *value) void DebuggerCommand::arg(const char *value)
{ {
QTC_ASSERT(args.isArray() || args.isNull(), return); QTC_ASSERT(args.isArray() || args.isNull(), return);

View File

@@ -59,6 +59,7 @@ public:
void arg(const char *name, const QString &value); void arg(const char *name, const QString &value);
void arg(const char *name, const char *value); void arg(const char *name, const char *value);
void arg(const char *name, const QList<int> &list); void arg(const char *name, const QList<int> &list);
void arg(const char *name, const QStringList &list); // Note: Hex-encodes.
void arg(const char *name, const QJsonValue &value); void arg(const char *name, const QJsonValue &value);
QString argsToPython() const; QString argsToPython() const;

View File

@@ -339,16 +339,8 @@ void LldbEngine::setupInferior()
cmd2.arg("startmode", rp.startMode); cmd2.arg("startmode", rp.startMode);
cmd2.arg("nativemixed", isNativeMixedActive()); cmd2.arg("nativemixed", isNativeMixedActive());
cmd2.arg("workingdirectory", rp.inferior.workingDirectory); cmd2.arg("workingdirectory", rp.inferior.workingDirectory);
cmd2.arg("environment", rp.inferior.environment.toStringList());
QJsonArray env; cmd2.arg("processargs", args.toUnixArgs());
foreach (const QString &item, rp.inferior.environment.toStringList())
env.append(toHex(item));
cmd2.arg("environment", env);
QJsonArray processArgs;
foreach (const QString &arg, args.toUnixArgs())
processArgs.append(QLatin1String(arg.toUtf8().toHex()));
cmd2.arg("processargs", processArgs);
if (rp.useTerminal) { if (rp.useTerminal) {
QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state()); QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state());