https://github.com/da-viper created 
https://github.com/llvm/llvm-project/pull/213679

The DAP server was spawned using only the user defined `options.env`, which 
dropped the parent process's environment (e.g. PATH). Merge the two, giving 
user-defined values priority on conflicts.

Fixes #159498

>From 2505e32a0fe5a4202012ab0b907cf1a7627ebbf3 Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <[email protected]>
Date: Mon, 3 Aug 2026 14:57:20 +0100
Subject: [PATCH] [lldb-dap] Merge parent process env with user-defined env
 when spawning server

The DAP server was spawned using only the user-provided `options.env`,
which dropped the parent process's environment (e.g. PATH). Merge the
two, giving user-defined values priority on conflicts.

Fixes #159498
---
 lldb/tools/lldb-dap/extension/src/lldb-dap-server.ts | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lldb/tools/lldb-dap/extension/src/lldb-dap-server.ts 
b/lldb/tools/lldb-dap/extension/src/lldb-dap-server.ts
index deacdea145a41..7ee12d66b49d1 100644
--- a/lldb/tools/lldb-dap/extension/src/lldb-dap-server.ts
+++ b/lldb/tools/lldb-dap/extension/src/lldb-dap-server.ts
@@ -59,8 +59,14 @@ export class LLDBDapServer implements vscode.Disposable {
       return this.serverInfo;
     }
 
+    // Merge the parent env with the user defined env (user defined takes 
priority).
+    const dapSpawnOptions: child_process.SpawnOptionsWithoutStdio = {
+      ...options,
+      env: { ...process.env, ...options?.env },
+    };
+
     this.serverInfo = new Promise((resolve, reject) => {
-      const process = child_process.spawn(dapPath, dapArgs, options);
+      const process = child_process.spawn(dapPath, dapArgs, dapSpawnOptions);
       process.on("error", (error) => {
         reject(error);
         this.cleanUp(process);

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to