forked from qt-creator/qt-creator
LLDB-DAP: Fix passing program arguments
This way if we pass arguments to the Run configuration, they will reach the inferior whilst being debugged. Change-Id: I93d99ff0d69b4ec710887097efc643fb48c8acca Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io>
This commit is contained in:
@@ -115,14 +115,6 @@ LldbDapEngine::LldbDapEngine()
|
||||
setDebuggerType("DAP");
|
||||
}
|
||||
|
||||
QJsonArray LldbDapEngine::environment() const
|
||||
{
|
||||
QJsonArray envArray;
|
||||
for (const QString &value : runParameters().inferior.environment.toDictionary().toStringList())
|
||||
envArray.append(value);
|
||||
return envArray;
|
||||
}
|
||||
|
||||
QJsonArray LldbDapEngine::sourceMap() const
|
||||
{
|
||||
QJsonArray sourcePathMapping;
|
||||
@@ -160,11 +152,13 @@ void LldbDapEngine::handleDapInitialize()
|
||||
const QJsonArray commands = preRunCommands();
|
||||
|
||||
if (!isLocalAttachEngine()) {
|
||||
const QJsonArray env = environment();
|
||||
const QJsonArray env = QJsonArray::fromStringList(
|
||||
rp.inferior.environment.toDictionary().toStringList());
|
||||
const QJsonArray args = QJsonArray::fromStringList(rp.inferior.command.splitArguments());
|
||||
|
||||
QJsonObject launchJson{
|
||||
{"noDebug", false},
|
||||
{"program", rp.inferior.command.executable().path()},
|
||||
{"args", rp.inferior.command.arguments()},
|
||||
{"cwd", rp.inferior.workingDirectory.path()},
|
||||
{"env", env},
|
||||
{"__restart", ""},
|
||||
@@ -173,6 +167,8 @@ void LldbDapEngine::handleDapInitialize()
|
||||
launchJson.insert("sourceMap", map);
|
||||
if (!commands.isEmpty())
|
||||
launchJson.insert("preRunCommands", commands);
|
||||
if (!args.isEmpty())
|
||||
launchJson.insert("args", args);
|
||||
|
||||
m_dapClient->postRequest("launch", launchJson);
|
||||
|
||||
|
@@ -22,7 +22,6 @@ private:
|
||||
bool acceptsBreakpoint(const BreakpointParameters &bp) const override;
|
||||
const QLoggingCategory &logCategory() override;
|
||||
|
||||
QJsonArray environment() const;
|
||||
QJsonArray sourceMap() const;
|
||||
QJsonArray preRunCommands() const;
|
||||
};
|
||||
|
Reference in New Issue
Block a user