Skip to content

Conversation

@da-viper
Copy link
Contributor

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

Fixes llvm#140589
Added logic to dynamically set the `lldb-dap.showModules` context based on the presence of modules in the debug session.
@da-viper da-viper requested a review from ashgti May 19, 2025 19:51
@da-viper da-viper requested a review from JDevlieghere as a code owner May 19, 2025 19:51
@llvmbot llvmbot added the lldb label May 19, 2025
@da-viper da-viper removed the lldb label May 19, 2025
@llvmbot
Copy link
Member

llvmbot commented May 19, 2025

@llvm/pr-subscribers-lldb

Author: Ebuka Ezike (da-viper)

Changes

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


Full diff: https://github.com/llvm/llvm-project/pull/140603.diff

2 Files Affected:

  • (modified) lldb/tools/lldb-dap/package.json (+1-1)
  • (modified) lldb/tools/lldb-dap/src-ts/debug-session-tracker.ts (+11)
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();
     }

Copy link
Member

@JDevlieghere JDevlieghere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick turnaround!

Added logic to dynamically set the `lldb-dap.showModules` context based on the presence of modules in the debug session.
@llvmbot llvmbot added the lldb label May 19, 2025
Added logic to dynamically set the `lldb-dap.showModules` context based on the presence of modules in the debug session.
Copy link
Member

@JDevlieghere JDevlieghere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM modulo comments.

@da-viper da-viper requested a review from ashgti May 20, 2025 11:51
@da-viper da-viper merged commit dfc65ef into llvm:main May 20, 2025
10 checks passed
@da-viper da-viper deleted the show-no-module-pane branch May 30, 2025 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enhancement Request: Hide or collapse the modules window until we get a modules event in the LLDB-DAP extension

4 participants