[Lldb-commits] [lldb] [lldb-dap] Allow providing debug adapter arguments in the extension (PR #129262)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Fri Mar 14 09:19:38 PDT 2025
================
@@ -90,117 +99,119 @@ async function getDAPExecutable(
return foundPath;
}
- return undefined;
+ throw new ErrorWithNotification(
+ "Unable to find the path to the LLDB debug adapter executable.",
+ new OpenSettingsButton("lldb-dap.executable-path"),
+ );
}
-async function isServerModeSupported(exe: string): Promise<boolean> {
- const { stdout } = await exec(exe, ['--help']);
- return /--connection/.test(stdout);
+/**
+ * Retrieves the arguments that will be provided to lldb-dap either from settings or the provided
+ * {@link vscode.DebugConfiguration}.
+ *
+ * @param workspaceFolder The {@link vscode.WorkspaceFolder} that the debug session will be launched within
+ * @param configuration The {@link vscode.DebugConfiguration} that will be launched
+ * @throws An {@link ErrorWithNotification} if something went wrong
+ * @returns The arguments that will be provided to lldb-dap
+ */
+async function getDAPArguments(
+ workspaceFolder: vscode.WorkspaceFolder | undefined,
+ configuration: vscode.DebugConfiguration,
+): Promise<string[]> {
+ // Check the debug configuration for arguments first
+ const debugConfigArgs = configuration.debugAdapterArgs;
+ if (debugConfigArgs) {
+ if (
+ !Array.isArray(debugConfigArgs) ||
+ debugConfigArgs.findIndex((entry) => typeof entry !== "string") !== -1
+ ) {
+ throw new ErrorWithNotification(
+ "The debugAdapterArgs property must be an array of string values. Please update your launch configuration",
+ new ConfigureButton(),
+ );
+ }
+ return debugConfigArgs;
+ }
+ // Fall back on the workspace configuration
----------------
JDevlieghere wrote:
```suggestion
// Fall back on the workspace configuration.
```
https://github.com/llvm/llvm-project/pull/129262
More information about the lldb-commits
mailing list