summaryrefslogtreecommitdiff
path: root/src/vm/gdbjit.h
diff options
context:
space:
mode:
authorEvgeny Pavlov <lucenticus@gmail.com>2017-01-20 14:59:34 +0300
committerJan Vorlicek <janvorli@microsoft.com>2017-01-20 12:59:34 +0100
commit4ac7fe064c2e57c818f565ba2c5192bc73250bf4 (patch)
treeeb110175facbd5b172044e0d6f3ce8024dc6862b /src/vm/gdbjit.h
parentd17e8c5f587fd8971dd61c2f282d98d395b5e4fc (diff)
downloadcoreclr-4ac7fe064c2e57c818f565ba2c5192bc73250bf4.tar.gz
coreclr-4ac7fe064c2e57c818f565ba2c5192bc73250bf4.tar.bz2
coreclr-4ac7fe064c2e57c818f565ba2c5192bc73250bf4.zip
[GDB-JIT][Linux] Fix incorrect displaying of (s)byte and char in lldb (#9022)
* [GDB-JIT] Initial support of typedef for correct displaying 'byte' and 'sbyte' * [GDB-JIT] Add char typedef to show correct type in lldb * Code cleanup
Diffstat (limited to 'src/vm/gdbjit.h')
-rw-r--r--src/vm/gdbjit.h37
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: