https://github.com/Da-Viper updated https://github.com/llvm/llvm-project/pull/104711
>From 0b84d36d320a58a13ca98bd1b1c186c72bbe63e2 Mon Sep 17 00:00:00 2001 From: Ezike Ebuka <yerimy...@gmail.com> Date: Sun, 18 Aug 2024 15:26:11 +0100 Subject: [PATCH 1/2] [lldb-dap] vscode now shows a dialog when the dab-executable is not found --- lldb/tools/lldb-dap/src-ts/extension.ts | 29 ++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/lldb/tools/lldb-dap/src-ts/extension.ts b/lldb/tools/lldb-dap/src-ts/extension.ts index 791175f7b46224..c7802eed2a513b 100644 --- a/lldb/tools/lldb-dap/src-ts/extension.ts +++ b/lldb/tools/lldb-dap/src-ts/extension.ts @@ -1,4 +1,5 @@ import * as vscode from "vscode"; +import * as fs from "node:fs/promises"; import { LLDBDapOptions } from "./types"; import { DisposableContext } from "./disposable-context"; import { LLDBDapDescriptorFactory } from "./debug-adapter-factory"; @@ -17,10 +18,32 @@ function createDefaultLLDBDapOptions(): LLDBDapOptions { const path = vscode.workspace .getConfiguration("lldb-dap", session.workspaceFolder) .get<string>("executable-path"); - if (path) { - return new vscode.DebugAdapterExecutable(path, []); + + if (!path) { + return packageJSONExecutable; + } + + try { + const fileStats = await fs.stat(path); + if (!fileStats.isFile()) { + throw new Error(`Error: ${path} is not a file`); + } + } catch (err) { + const error: Error = err as Error; + const openSettingsAction = "Open Settings"; + const callBackValue = await vscode.window.showErrorMessage( + error.message, + { modal: true }, + openSettingsAction, + ); + if (openSettingsAction === callBackValue) { + vscode.commands.executeCommand( + "workbench.action.openSettings", + "lldb-dap.executable-path", + ); + } } - return packageJSONExecutable; + return new vscode.DebugAdapterExecutable(path, []); }, }; } >From 2eca3822a8ba5f1a329e459176003a30de40c683 Mon Sep 17 00:00:00 2001 From: Ezike Ebuka <yerimy...@gmail.com> Date: Sun, 18 Aug 2024 23:25:00 +0100 Subject: [PATCH 2/2] [lldb-dap] handle symbolic link --- lldb/tools/lldb-dap/src-ts/extension.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/tools/lldb-dap/src-ts/extension.ts b/lldb/tools/lldb-dap/src-ts/extension.ts index c7802eed2a513b..7bc380a73bd443 100644 --- a/lldb/tools/lldb-dap/src-ts/extension.ts +++ b/lldb/tools/lldb-dap/src-ts/extension.ts @@ -25,7 +25,7 @@ function createDefaultLLDBDapOptions(): LLDBDapOptions { try { const fileStats = await fs.stat(path); - if (!fileStats.isFile()) { + if (!fileStats.isFile() && !fileStats.isSymbolicLink()) { throw new Error(`Error: ${path} is not a file`); } } catch (err) { _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits