[Lldb-commits] [lldb] [lldb-dap] Merge parent and user defined env when spawning server. (PR #213679)
via lldb-commits
lldb-commits at lists.llvm.org
Mon Aug 3 07:00:58 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: Ebuka Ezike (da-viper)
<details>
<summary>Changes</summary>
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
---
Full diff: https://github.com/llvm/llvm-project/pull/213679.diff
1 Files Affected:
- (modified) lldb/tools/lldb-dap/extension/src/lldb-dap-server.ts (+7-1)
``````````diff
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);
``````````
</details>
https://github.com/llvm/llvm-project/pull/213679
More information about the lldb-commits
mailing list