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
