diff options
Diffstat (limited to 'src/vm/gdbjit.h')
-rw-r--r-- | src/vm/gdbjit.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/vm/gdbjit.h b/src/vm/gdbjit.h index 3160eccf57..19ece0180a 100644 --- a/src/vm/gdbjit.h +++ b/src/vm/gdbjit.h @@ -184,6 +184,43 @@ public: int m_type_encoding; }; +class TypeDefInfo : public DwarfDumpable +{ +public: + TypeDefInfo(char *typedef_name,int typedef_type): + m_typedef_name(typedef_name), m_typedef_type(typedef_type) {} + void DumpStrings(char* ptr, int& offset) override; + void DumpDebugInfo(char* ptr, int& offset) override; + virtual ~TypeDefInfo() + { + if (m_typedef_name != nullptr) + { + delete [] m_typedef_name; + } + } + char *m_typedef_name; + int m_typedef_type; + int m_typedef_type_offset; + int m_typedef_name_offset; +}; + +class ByteTypeInfo : public PrimitiveTypeInfo +{ +public: + ByteTypeInfo(TypeHandle typeHandle, int encoding) : PrimitiveTypeInfo(typeHandle, encoding) + { + m_typedef_info = new (nothrow) TypeDefInfo(nullptr, 0); + } + virtual ~ByteTypeInfo() + { + delete m_typedef_info; + } + void DumpDebugInfo(char* ptr, int& offset) override; + void DumpStrings(char* ptr, int& offset) override; + + TypeDefInfo* m_typedef_info; +}; + class RefTypeInfo: public TypeInfoBase { public: |