[Lldb-commits] [lldb] [vscode-lldb] Improve logging in Server Mode (PR #159672)

Roy Shi via lldb-commits lldb-commits at lists.llvm.org
Fri Sep 19 13:54:47 PDT 2025


https://github.com/royitaqi updated https://github.com/llvm/llvm-project/pull/159672

>From 79ea55789a7f01b05009a9bb6c28fa6e4ebe7fdb Mon Sep 17 00:00:00 2001
From: Roy Shi <royshi at meta.com>
Date: Thu, 18 Sep 2025 15:52:45 -0700
Subject: [PATCH 1/4] [vscode-lldb] Improve logging in server mode

---
 lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts b/lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts
index 774be50053a17..280a11d807f6a 100644
--- a/lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts
+++ b/lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts
@@ -167,9 +167,12 @@ Restarting the server will interrupt any existing debug sessions and start a new
     return [
       path,
       ...args,
-      ...Object.entries(env ?? {}).map(
-        (entry) => String(entry[0]) + "=" + String(entry[1]),
-      ),
+      ...Object.entries(env ?? {})
+        // Filter and sort to avoid restarting the server just because the
+        // order of env changed or the log path changed.
+        .filter((entry) => String(entry[0]) !== "LLDBDAP_LOG")
+        .sort()
+        .map((entry) => String(entry[0]) + "=" + String(entry[1])),
     ];
   }
 }

>From 0abc316fdf19feec035399b2895d4e3a5b62f7e6 Mon Sep 17 00:00:00 2001
From: Roy Shi <royshi at meta.com>
Date: Thu, 18 Sep 2025 16:00:14 -0700
Subject: [PATCH 2/4] Add username to log filename

---
 lldb/tools/lldb-dap/src-ts/logging.ts | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lldb/tools/lldb-dap/src-ts/logging.ts b/lldb/tools/lldb-dap/src-ts/logging.ts
index 3b1c3c37ce1ce..e3b6c56291cec 100644
--- a/lldb/tools/lldb-dap/src-ts/logging.ts
+++ b/lldb/tools/lldb-dap/src-ts/logging.ts
@@ -1,3 +1,4 @@
+import * as os from 'os';
 import * as path from "path";
 import * as vscode from "vscode";
 
@@ -44,7 +45,7 @@ export class LogFilePathProvider {
     const logFolder = this.logFolder || this.context.logUri.fsPath;
     switch(type) {
     case LogType.DEBUG_SESSION:
-        return path.join(logFolder, `lldb-dap-session-${formatDate(new Date())}.log`);
+        return path.join(logFolder, `lldb-dap-session-${os.userInfo().username}-${formatDate(new Date())}.log`);
         break;
     }
   }

>From b50a42118c47713dbee74cbf45a84b5b8f3b79b8 Mon Sep 17 00:00:00 2001
From: Roy Shi <royshi at meta.com>
Date: Fri, 19 Sep 2025 13:35:41 -0700
Subject: [PATCH 3/4] Use vscode session ID instead

---
 lldb/tools/lldb-dap/src-ts/logging.ts | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lldb/tools/lldb-dap/src-ts/logging.ts b/lldb/tools/lldb-dap/src-ts/logging.ts
index e3b6c56291cec..e48dde74d4a4d 100644
--- a/lldb/tools/lldb-dap/src-ts/logging.ts
+++ b/lldb/tools/lldb-dap/src-ts/logging.ts
@@ -1,4 +1,3 @@
-import * as os from 'os';
 import * as path from "path";
 import * as vscode from "vscode";
 
@@ -45,7 +44,7 @@ export class LogFilePathProvider {
     const logFolder = this.logFolder || this.context.logUri.fsPath;
     switch(type) {
     case LogType.DEBUG_SESSION:
-        return path.join(logFolder, `lldb-dap-session-${os.userInfo().username}-${formatDate(new Date())}.log`);
+        return path.join(logFolder, `lldb-dap-session-${formatDate(new Date())}-vscode-${vscode.env.sessionId}.log`);
         break;
     }
   }

>From e5f8d795ce9bd571bf284eeab7c07a225b686c15 Mon Sep 17 00:00:00 2001
From: Roy Shi <royshi at meta.com>
Date: Fri, 19 Sep 2025 13:54:35 -0700
Subject: [PATCH 4/4] Shorten the filename

---
 lldb/tools/lldb-dap/src-ts/logging.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lldb/tools/lldb-dap/src-ts/logging.ts b/lldb/tools/lldb-dap/src-ts/logging.ts
index e48dde74d4a4d..7f3bbef9b027f 100644
--- a/lldb/tools/lldb-dap/src-ts/logging.ts
+++ b/lldb/tools/lldb-dap/src-ts/logging.ts
@@ -44,7 +44,7 @@ export class LogFilePathProvider {
     const logFolder = this.logFolder || this.context.logUri.fsPath;
     switch(type) {
     case LogType.DEBUG_SESSION:
-        return path.join(logFolder, `lldb-dap-session-${formatDate(new Date())}-vscode-${vscode.env.sessionId}.log`);
+        return path.join(logFolder, `lldb-dap-${formatDate(new Date())}-${vscode.env.sessionId.split("-")[0]}.log`);
         break;
     }
   }



More information about the lldb-commits mailing list