================
@@ -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() && !fileStats.isSymbolicLink()) {
+ 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, []);
----------------
walter-erquinigo wrote:
instead of making a try catch block here, why don't you just show the pop up
right away without throwing an error?
https://github.com/llvm/llvm-project/pull/104711
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits