|
LLDB mainline
|
#include <RegisterType.h>
Public Types | |
| enum | RegisterTypeKind { eRegisterTypeKindFlags , eRegisterTypeKindEnum , eRegisterTypeKindBuiltin , eRegisterTypeKindVector , eRegisterTypeKindUnion } |
Public Member Functions | |
| RegisterTypeKind | getKind () const |
| RegisterType (RegisterTypeKind kind, std::string id) | |
| RegisterType (const RegisterType &)=delete | |
| RegisterType & | operator= (const RegisterType &)=delete |
| RegisterType (RegisterType &&)=delete | |
| RegisterType & | operator= (RegisterType &&)=delete |
| virtual void | ToXML (Stream &strm, std::unordered_set< std::string > &previously_emitted, const RegisterType *user=nullptr) const |
| Output XML that describes this type, to be inserted into a target XML file. | |
| virtual | ~RegisterType ()=default |
| virtual void | ToXMLElement (Stream &strm, const RegisterType *user=nullptr) const =0 |
| Output the register type as an XML element. | |
| const std::string & | GetID () const |
| uint64_t | GetUID () const |
| Return an identifier unique among all RegisterType instances constructed during the lifetime of the LLDB host process. | |
| virtual std::optional< uint64_t > | GetByteSize () const |
| Return this type's fixed size in bytes, if it has one. | |
| void | SetDependencies (std::vector< const RegisterType * > dependencies) |
Static Public Member Functions | |
| static void | PrintXMLAttributeValue (Stream &strm, llvm::StringRef value) |
| Print a string escaped for use as an XML attribute value. | |
Private Attributes | |
| const RegisterTypeKind | m_kind |
| const std::string | m_id |
| const uint64_t | m_uid |
| std::vector< const RegisterType * > | m_dependencies |
Definition at line 26 of file RegisterType.h.
| Enumerator | |
|---|---|
| eRegisterTypeKindFlags | |
| eRegisterTypeKindEnum | |
| eRegisterTypeKindBuiltin | |
| eRegisterTypeKindVector | |
| eRegisterTypeKindUnion | |
Definition at line 28 of file RegisterType.h.
| RegisterType::RegisterType | ( | RegisterTypeKind | kind, |
| std::string | id ) |
Definition at line 27 of file RegisterType.cpp.
References g_next_register_type_uid, m_id, m_kind, and m_uid.
Referenced by lldb_private::RegisterTypeBuiltin::classof(), lldb_private::RegisterTypeEnum::classof(), lldb_private::RegisterTypeFlags::classof(), lldb_private::RegisterTypeUnion::classof(), lldb_private::RegisterTypeVector::classof(), lldb_private::RegisterTypeUnion::Field::Field(), lldb_private::RegisterTypeVector::GetElementType(), lldb_private::RegisterTypeUnion::Field::GetType(), operator=(), operator=(), RegisterType(), RegisterType(), lldb_private::RegisterTypeBuiltin::RegisterTypeBuiltin(), lldb_private::RegisterTypeEnum::RegisterTypeEnum(), lldb_private::RegisterTypeUnion::RegisterTypeUnion(), lldb_private::RegisterTypeVector::RegisterTypeVector(), ToXML(), lldb_private::RegisterTypeBuiltin::ToXML(), ToXMLElement(), lldb_private::RegisterTypeBuiltin::ToXMLElement(), lldb_private::RegisterTypeEnum::ToXMLElement(), lldb_private::RegisterTypeFlags::ToXMLElement(), lldb_private::RegisterTypeUnion::ToXMLElement(), and lldb_private::RegisterTypeVector::ToXMLElement().
|
delete |
References RegisterType().
|
delete |
References RegisterType().
|
virtualdefault |
|
inlinevirtual |
Return this type's fixed size in bytes, if it has one.
No byte size means it depends on the target.
Reimplemented in lldb_private::RegisterTypeBuiltin, lldb_private::RegisterTypeUnion, and lldb_private::RegisterTypeVector.
Definition at line 71 of file RegisterType.h.
Referenced by lldb_private::RegisterTypeBuilderClang::BuildVectorType().
|
inline |
Definition at line 62 of file RegisterType.h.
References m_id.
Referenced by lldb_private::RegisterTypeBuilderClang::BuildBuiltinType(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::BuildTargetXml(), lldb_private::RegisterTypeEnum::DumpToLog(), lldb_private::RegisterTypeUnion::DumpToLog(), lldb_private::RegisterTypeVector::DumpToLog(), ToXML(), lldb_private::RegisterTypeEnum::ToXMLElement(), lldb_private::RegisterTypeFlags::ToXMLElement(), lldb_private::RegisterTypeUnion::ToXMLElement(), and lldb_private::RegisterTypeVector::ToXMLElement().
|
inline |
Definition at line 36 of file RegisterType.h.
References m_kind.
Referenced by lldb_private::RegisterTypeBuilderClang::BuildVectorType(), lldb_private::RegisterTypeBuiltin::classof(), lldb_private::RegisterTypeEnum::classof(), lldb_private::RegisterTypeFlags::classof(), lldb_private::RegisterTypeUnion::classof(), lldb_private::RegisterTypeVector::classof(), and lldb_private::RegisterTypeBuilderClang::GetRegisterType().
|
inline |
Return an identifier unique among all RegisterType instances constructed during the lifetime of the LLDB host process.
The identifier is not reused after this instance is destroyed.
Definition at line 67 of file RegisterType.h.
References m_uid.
Referenced by lldb_private::RegisterTypeBuilderClang::BuildBuiltinType(), lldb_private::RegisterTypeBuilderClang::BuildEnumType(), lldb_private::RegisterTypeBuilderClang::BuildFlagsType(), lldb_private::RegisterTypeBuilderClang::BuildVectorType(), and lldb_private::RegisterTypeBuilderClang::GetExistingCompilerType().
|
delete |
References RegisterType().
|
delete |
References RegisterType().
|
static |
Print a string escaped for use as an XML attribute value.
Definition at line 46 of file RegisterType.cpp.
Referenced by lldb_private::RegisterTypeEnum::ToXMLElement(), lldb_private::RegisterTypeFlags::Field::ToXMLElement(), lldb_private::RegisterTypeFlags::ToXMLElement(), lldb_private::RegisterTypeUnion::ToXMLElement(), and lldb_private::RegisterTypeVector::ToXMLElement().
|
inline |
Definition at line 73 of file RegisterType.h.
References m_dependencies.
Referenced by lldb_private::RegisterTypeUnion::RegisterTypeUnion(), and lldb_private::RegisterTypeVector::RegisterTypeVector().
|
virtual |
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 "<".
Reimplemented in lldb_private::RegisterTypeBuiltin.
Definition at line 31 of file RegisterType.cpp.
References GetID(), m_dependencies, RegisterType(), and ToXMLElement().
Referenced by lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::BuildTargetXml().
|
pure virtual |
Output the register type as an XML element.
That is, "<foo ...>" until the closing </foo>, including any child types in between. For example the flags in a register flag set.
Implemented in lldb_private::RegisterTypeBuiltin, lldb_private::RegisterTypeEnum, lldb_private::RegisterTypeFlags, lldb_private::RegisterTypeUnion, and lldb_private::RegisterTypeVector.
References RegisterType().
Referenced by ToXML().
|
private |
Definition at line 81 of file RegisterType.h.
Referenced by SetDependencies(), and ToXML().
|
private |
Definition at line 79 of file RegisterType.h.
Referenced by GetID(), and RegisterType().
|
private |
Definition at line 78 of file RegisterType.h.
Referenced by getKind(), and RegisterType().
|
private |
Definition at line 80 of file RegisterType.h.
Referenced by GetUID(), and RegisterType().