Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lldb/tools/lldb-dap/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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)"
}
]
Expand Down
16 changes: 16 additions & 0 deletions lldb/tools/lldb-dap/src-ts/debug-session-tracker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand All @@ -70,9 +71,21 @@ export class DebugSessionTracker
/** Clear information from the active session. */
private onExit(session: vscode.DebugSession) {
this.modules.delete(session);
// close when there is no more sessions
if (this.modules.size <= 0) {
this.showModulesTreeView(false);
}
this.modulesChanged.fire();
}

private showModulesTreeView(showModules: boolean) {
vscode.commands.executeCommand(
"setContext",
"lldb-dap.showModules",
showModules,
);
}

private onDidSendMessage(
session: vscode.DebugSession,
message: DebugProtocol.ProtocolMessage,
Expand All @@ -89,6 +102,9 @@ export class DebugSessionTracker
} else {
modules.push(module);
}
if (modules.length == 1) {
this.showModulesTreeView(true);
}
break;
}
case "removed": {
Expand Down
Loading