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

Fixes #140589
Added logic to dynamically set the `lldb-dap.showModules` context based on the 
presence of modules in the debug session.

>From 8ca0be7cdd49caa32db43097d9ff9c4060b1d87d Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <yerimy...@gmail.com>
Date: Mon, 19 May 2025 20:44:31 +0100
Subject: [PATCH] [lldb][lldb-dap] show modules pane if supported by the
 adapter

Fixes #140589
Added logic to dynamically set the `lldb-dap.showModules` context based on the 
presence of modules in the debug session.
---
 lldb/tools/lldb-dap/package.json                    |  2 +-
 lldb/tools/lldb-dap/src-ts/debug-session-tracker.ts | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/lldb/tools/lldb-dap/package.json b/lldb/tools/lldb-dap/package.json
index d5ca604798799..7f90d5535b54b 100644
--- a/lldb/tools/lldb-dap/package.json
+++ b/lldb/tools/lldb-dap/package.json
@@ -787,7 +787,7 @@
         {
           "id": "lldb-dap.modules",
           "name": "Modules",
-          "when": "inDebugMode && debugType == 'lldb-dap'",
+          "when": "inDebugMode && debugType == 'lldb-dap' && 
lldb-dap.showModules",
           "icon": "$(symbol-module)"
         }
       ]
diff --git a/lldb/tools/lldb-dap/src-ts/debug-session-tracker.ts 
b/lldb/tools/lldb-dap/src-ts/debug-session-tracker.ts
index 1ce190938d9c7..d9c3c617e6d85 100644
--- a/lldb/tools/lldb-dap/src-ts/debug-session-tracker.ts
+++ b/lldb/tools/lldb-dap/src-ts/debug-session-tracker.ts
@@ -52,6 +52,7 @@ export class DebugSessionTracker
   createDebugAdapterTracker(
     session: vscode.DebugSession,
   ): vscode.ProviderResult<vscode.DebugAdapterTracker> {
+    this.showModulesTreeView(false);
     return {
       onDidSendMessage: (message) => this.onDidSendMessage(session, message),
       onExit: () => this.onExit(session),
@@ -73,6 +74,14 @@ export class DebugSessionTracker
     this.modulesChanged.fire();
   }
 
+  private showModulesTreeView(showModules: boolean) {
+    vscode.commands.executeCommand(
+      "setContext",
+      "lldb-dap.showModules",
+      showModules,
+    );
+  }
+
   private onDidSendMessage(
     session: vscode.DebugSession,
     message: DebugProtocol.ProtocolMessage,
@@ -102,6 +111,8 @@ export class DebugSessionTracker
           console.error("unexpected module event reason");
           break;
       }
+
+      this.showModulesTreeView(modules.length > 0);
       this.modules.set(session, modules);
       this.modulesChanged.fire();
     }

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to