[Lldb-commits] [lldb] [lldb-server] Add accelerator plugin infrastructure for debugging hardware accelerators like gpus (PR #198907)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Wed May 27 03:49:07 PDT 2026


================
@@ -120,6 +120,47 @@ In any case, if we want the normal detach behavior we will just send:
 D
 ```
 
+## jAcceleratorPluginInitialize
+
+This packet requests initialization data from all accelerator plugins
+installed in lldb-server. Accelerator plugins allow lldb-server to support
+debugging of hardware accelerators (e.g. GPUs, FPGAs) alongside the native
+host process. This packet is only sent when the server reports the
+`accelerator-plugins+` feature in its `qSupported` response.
+
+```
+LLDB SENDS:    jAcceleratorPluginInitialize
+STUB REPLIES:  [<accelerator_action>,...]
+```
+
+Each `accelerator_action` is a JSON object with the following required fields:
+
+| Key            | Type    | Description |
+|----------------|---------|-------------|
+| `plugin_name`  | string  | Unique name identifying the accelerator plugin (e.g. `"mock"`, `"amdgpu"`). Each installed plugin has a distinct name. |
+| `session_name` | string  | Name for the DAP debug session associated with this plugin. May be empty. |
+| `identifier`   | integer | Unique identifier for this action. Each action from a given plugin has a distinct identifier. |
+
+There can be multiple accelerator plugins installed, each with a unique
+`plugin_name`. The response is a JSON array with one entry per installed
+plugin.
+
+Example:
+```
+LLDB SENDS:    jAcceleratorPluginInitialize
+STUB REPLIES:  [{"plugin_name":"mock","session_name":"","identifier":0}]
+```
+
+If no accelerator plugins are installed, the server does not advertise the
+`accelerator-plugins+` feature and this packet should not be sent.
+
+In future patches, each `accelerator_action` will include additional fields
+such as breakpoints to set in the native process, connection info for
+secondary debug sessions, and synchronization options.
----------------
DavidSpickett wrote:

Please describe here how the plugins act if the accelerator isn't present.

Perhaps that's not an issue for this packet and finding out that the GPU is unplugged will happen when lldb tries to execute one of the actions?

https://github.com/llvm/llvm-project/pull/198907


More information about the lldb-commits mailing list