================
@@ -0,0 +1,62 @@
+//===-- RegisterType.h ------------------------------------------*- C++ 
-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_TARGET_REGISTERTYPE_H
+#define LLDB_TARGET_REGISTERTYPE_H
+
+#include <string>
+#include <unordered_set>
+#include <vector>
+
+namespace lldb_private {
+
+class Stream;
+class Log;
+
+class RegisterType {
+public:
+  enum RegisterTypeKind {
+    eRegisterTypeKindFlags,
+    eRegisterTypeKindEnum,
+  };
+
+  RegisterTypeKind getKind() const { return m_kind; }
+
+  RegisterType(RegisterTypeKind kind, std::string id)
+      : m_kind(kind), m_id(std::move(id)) {}
+
+  /// Output XML that describes this type, to be inserted into a target XML
+  /// file. Reserved characters like "<" are replaced with their XML safe
+  /// equivalents like "&gt;".
+  void ToXML(Stream &strm,
----------------
DavidSpickett wrote:

The `FromXML` part (though not called that) is all in 
`lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp`. For example 
`ParseEnums`.

Which is not a great place for them. Definitely would like to have `FromXML` to 
debloat ProcessGDBRemote and be able to test it without faking a connection 
(`lldb/test/API/functionalities/gdb_remote_client/TestXMLRegisterFlags.py`).

https://github.com/llvm/llvm-project/pull/196960
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to