[Lldb-commits] [lldb] 5d8b4ea - [lldb-dap] Fix: disableASLR launch argument not working. (#129753)

via lldb-commits lldb-commits at lists.llvm.org
Wed Mar 5 09:43:33 PST 2025


Author: Da-Viper
Date: 2025-03-05T09:43:29-08:00
New Revision: 5d8b4ea97b174d6d80dbdeaabf5a3664d99e6a19

URL: https://github.com/llvm/llvm-project/commit/5d8b4ea97b174d6d80dbdeaabf5a3664d99e6a19
DIFF: https://github.com/llvm/llvm-project/commit/5d8b4ea97b174d6d80dbdeaabf5a3664d99e6a19.diff

LOG: [lldb-dap] Fix: disableASLR launch argument not working. (#129753)

Fixes #94338

Added: 
    

Modified: 
    lldb/tools/lldb-dap/Handler/RequestHandler.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/tools/lldb-dap/Handler/RequestHandler.cpp b/lldb/tools/lldb-dap/Handler/RequestHandler.cpp
index c72cf85a72ee5..e43fa36d25e3f 100644
--- a/lldb/tools/lldb-dap/Handler/RequestHandler.cpp
+++ b/lldb/tools/lldb-dap/Handler/RequestHandler.cpp
@@ -31,7 +31,19 @@ MakeArgv(const llvm::ArrayRef<std::string> &strs) {
   return argv;
 }
 
-// Both attach and launch take a either a sourcePath or sourceMap
+static uint32_t SetLaunchFlag(uint32_t flags, const llvm::json::Object *obj,
+                              llvm::StringRef key, lldb::LaunchFlags mask) {
+  if (const auto opt_value = GetBoolean(obj, key)) {
+    if (*opt_value)
+      flags |= mask;
+    else
+      flags &= ~mask;
+  }
+
+  return flags;
+}
+
+// Both attach and launch take either a sourcePath or a sourceMap
 // argument (or neither), from which we need to set the target.source-map.
 void RequestHandler::SetSourceMapFromArguments(
     const llvm::json::Object &arguments) const {
@@ -173,12 +185,13 @@ RequestHandler::LaunchProcess(const llvm::json::Object &request) const {
 
   auto flags = launch_info.GetLaunchFlags();
 
-  if (GetBoolean(arguments, "disableASLR").value_or(true))
-    flags |= lldb::eLaunchFlagDisableASLR;
-  if (GetBoolean(arguments, "disableSTDIO").value_or(false))
-    flags |= lldb::eLaunchFlagDisableSTDIO;
-  if (GetBoolean(arguments, "shellExpandArguments").value_or(false))
-    flags |= lldb::eLaunchFlagShellExpandArguments;
+  flags = SetLaunchFlag(flags, arguments, "disableASLR",
+                        lldb::eLaunchFlagDisableASLR);
+  flags = SetLaunchFlag(flags, arguments, "disableSTDIO",
+                        lldb::eLaunchFlagDisableSTDIO);
+  flags = SetLaunchFlag(flags, arguments, "shellExpandArguments",
+                        lldb::eLaunchFlagShellExpandArguments);
+
   const bool detachOnError =
       GetBoolean(arguments, "detachOnError").value_or(false);
   launch_info.SetDetachOnError(detachOnError);


        


More information about the lldb-commits mailing list