summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHwankyu Jhun <h.jhun@samsung.com>2024-04-01 13:09:48 +0900
committerHwankyu Jhun <h.jhun@samsung.com>2024-04-01 15:21:20 +0900
commiteaea2282d7105d82268c9327cf01fb55e545756d (patch)
tree436960cb0c60e9c07d3eb0e6f2afbc542910f0ba
parent222d3605efd904bdbbd9f08bc75272697fcdbf28 (diff)
downloadlaunchpad-eaea2282d7105d82268c9327cf01fb55e545756d.tar.gz
launchpad-eaea2282d7105d82268c9327cf01fb55e545756d.tar.bz2
launchpad-eaea2282d7105d82268c9327cf01fb55e545756d.zip
Fix passing wrong arguments
When the application is executed using gdbserver, the export tag of the bundle is deleted unintentionally. To pass arguments properly, the launchpad encloses the string with a ''. Change-Id: Ide6a9624b7cf3d9fdb3ab3441a49a47368aae3bd Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r--src/launchpad-process-pool/app_executor.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/launchpad-process-pool/app_executor.cc b/src/launchpad-process-pool/app_executor.cc
index 819b50a..060d5ec 100644
--- a/src/launchpad-process-pool/app_executor.cc
+++ b/src/launchpad-process-pool/app_executor.cc
@@ -314,12 +314,17 @@ std::vector<std::string> AppExecutor::CreateAppArgv(const std::string& app_path,
if (inst.ShouldAttach())
return argv;
+ bool debug_mode = !argv.empty() ? true : false;
auto launcher_argv = GetLauncherArgv(app_type);
if (!launcher_argv.empty())
argv.insert(argv.end(), launcher_argv.begin(), launcher_argv.end());
auto exported_argv = b.Export();
exported_argv[LoaderArg::Path] = app_path;
+ if (debug_mode &&
+ exported_argv.size() > static_cast<size_t>(LoaderArg::Type))
+ exported_argv[LoaderArg::Type] = "'" + exported_argv[LoaderArg::Type] + "'";
+
if (!exported_argv.empty())
argv.insert(argv.end(), exported_argv.begin(), exported_argv.end());