[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
Tue May 26 02:37:08 PDT 2026


================
@@ -45,6 +46,28 @@ class StreamGDBRemote : public StreamString {
 
   /// Equivalent to PutEscapedBytes(str.data(), str.size());
   int PutEscapedBytes(llvm::StringRef str);
+
+  template <class T> int PutAsJSON(const T &obj, bool hex_ascii) {
+    std::string json_string;
+    llvm::raw_string_ostream os(json_string);
+    os << llvm::json::Value(toJSON(obj));
+    if (hex_ascii)
+      return PutStringAsRawHex8(json_string);
+    return PutEscapedBytes(json_string.c_str(), json_string.size());
+  }
+
+  template <class T> int PutAsJSONArray(const std::vector<T> &array) {
+    std::string json_string;
+    llvm::raw_string_ostream os(json_string);
+    os << "[";
+    for (size_t i = 0; i < array.size(); ++i) {
+      if (i > 0)
+        os << ",";
----------------
DavidSpickett wrote:

This feels like llvm::join with more steps, see if you could use that.

Also there is llvm::json::array and I assume you could construct one of those from the vector and it would be easier to format. I assume, I could be wrong but formatting as an array seems like a thing we'd have already written.

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


More information about the lldb-commits mailing list