diff options
Diffstat (limited to 'include/lldb/Symbol/JavaASTContext.h')
-rw-r--r-- | include/lldb/Symbol/JavaASTContext.h | 477 |
1 files changed, 223 insertions, 254 deletions
diff --git a/include/lldb/Symbol/JavaASTContext.h b/include/lldb/Symbol/JavaASTContext.h index 7d5a37649f6f..6e97674847f4 100644 --- a/include/lldb/Symbol/JavaASTContext.h +++ b/include/lldb/Symbol/JavaASTContext.h @@ -21,365 +21,334 @@ #include "lldb/Core/ConstString.h" #include "lldb/Symbol/TypeSystem.h" -namespace lldb_private -{ +namespace lldb_private { -class JavaASTContext : public TypeSystem -{ +class JavaASTContext : public TypeSystem { public: - class JavaType; - typedef std::map<ConstString, std::unique_ptr<JavaType>> JavaTypeMap; + class JavaType; + typedef std::map<ConstString, std::unique_ptr<JavaType>> JavaTypeMap; - JavaASTContext(const ArchSpec &arch); - ~JavaASTContext() override; + JavaASTContext(const ArchSpec &arch); + ~JavaASTContext() override; - //------------------------------------------------------------------ - // PluginInterface functions - //------------------------------------------------------------------ - ConstString - GetPluginName() override; + //------------------------------------------------------------------ + // PluginInterface functions + //------------------------------------------------------------------ + ConstString GetPluginName() override; - uint32_t - GetPluginVersion() override; + uint32_t GetPluginVersion() override; - static ConstString - GetPluginNameStatic(); + static ConstString GetPluginNameStatic(); - static lldb::TypeSystemSP - CreateInstance(lldb::LanguageType language, Module *module, Target *target); + static lldb::TypeSystemSP CreateInstance(lldb::LanguageType language, + Module *module, Target *target); - static void - EnumerateSupportedLanguages(std::set<lldb::LanguageType> &languages_for_types, - std::set<lldb::LanguageType> &languages_for_expressions); + static void EnumerateSupportedLanguages( + std::set<lldb::LanguageType> &languages_for_types, + std::set<lldb::LanguageType> &languages_for_expressions); - static void - Initialize(); + static void Initialize(); - static void - Terminate(); + static void Terminate(); - DWARFASTParser * - GetDWARFParser() override; + DWARFASTParser *GetDWARFParser() override; - uint32_t - GetPointerByteSize() override; + uint32_t GetPointerByteSize() override; - //---------------------------------------------------------------------- - // CompilerDecl functions - //---------------------------------------------------------------------- - ConstString - DeclGetName(void *opaque_decl) override; + //---------------------------------------------------------------------- + // CompilerDecl functions + //---------------------------------------------------------------------- + ConstString DeclGetName(void *opaque_decl) override; - //---------------------------------------------------------------------- - // CompilerDeclContext functions - //---------------------------------------------------------------------- + //---------------------------------------------------------------------- + // CompilerDeclContext functions + //---------------------------------------------------------------------- - std::vector<CompilerDecl> - DeclContextFindDeclByName(void *opaque_decl_ctx, ConstString name, const bool ignore_imported_decls) override; + std::vector<CompilerDecl> + DeclContextFindDeclByName(void *opaque_decl_ctx, ConstString name, + const bool ignore_imported_decls) override; - bool - DeclContextIsStructUnionOrClass(void *opaque_decl_ctx) override; + bool DeclContextIsStructUnionOrClass(void *opaque_decl_ctx) override; - ConstString - DeclContextGetName(void *opaque_decl_ctx) override; + ConstString DeclContextGetName(void *opaque_decl_ctx) override; - bool - DeclContextIsClassMethod(void *opaque_decl_ctx, lldb::LanguageType *language_ptr, bool *is_instance_method_ptr, - ConstString *language_object_name_ptr) override; + bool DeclContextIsClassMethod(void *opaque_decl_ctx, + lldb::LanguageType *language_ptr, + bool *is_instance_method_ptr, + ConstString *language_object_name_ptr) override; - //---------------------------------------------------------------------- - // Tests - //---------------------------------------------------------------------- + //---------------------------------------------------------------------- + // Tests + //---------------------------------------------------------------------- - bool - IsArrayType(lldb::opaque_compiler_type_t type, CompilerType *element_type, uint64_t *size, - bool *is_incomplete) override; + bool IsArrayType(lldb::opaque_compiler_type_t type, + CompilerType *element_type, uint64_t *size, + bool *is_incomplete) override; - bool - IsAggregateType(lldb::opaque_compiler_type_t type) override; + bool IsAggregateType(lldb::opaque_compiler_type_t type) override; - bool - IsCharType(lldb::opaque_compiler_type_t type) override; + bool IsCharType(lldb::opaque_compiler_type_t type) override; - bool - IsFloatingPointType(lldb::opaque_compiler_type_t type, uint32_t &count, bool &is_complex) override; + bool IsFloatingPointType(lldb::opaque_compiler_type_t type, uint32_t &count, + bool &is_complex) override; - bool - IsFunctionType(lldb::opaque_compiler_type_t type, bool *is_variadic_ptr = nullptr) override; + bool IsFunctionType(lldb::opaque_compiler_type_t type, + bool *is_variadic_ptr = nullptr) override; - size_t - GetNumberOfFunctionArguments(lldb::opaque_compiler_type_t type) override; + size_t + GetNumberOfFunctionArguments(lldb::opaque_compiler_type_t type) override; - CompilerType - GetFunctionArgumentAtIndex(lldb::opaque_compiler_type_t type, const size_t index) override; + CompilerType GetFunctionArgumentAtIndex(lldb::opaque_compiler_type_t type, + const size_t index) override; - bool - IsFunctionPointerType(lldb::opaque_compiler_type_t type) override; - - bool - IsBlockPointerType (lldb::opaque_compiler_type_t type, CompilerType *function_pointer_type_ptr) override; + bool IsFunctionPointerType(lldb::opaque_compiler_type_t type) override; - bool - IsIntegerType(lldb::opaque_compiler_type_t type, bool &is_signed) override; + bool IsBlockPointerType(lldb::opaque_compiler_type_t type, + CompilerType *function_pointer_type_ptr) override; - bool - IsPossibleDynamicType(lldb::opaque_compiler_type_t type, CompilerType *target_type, bool check_cplusplus, - bool check_objc) override; + bool IsIntegerType(lldb::opaque_compiler_type_t type, + bool &is_signed) override; - bool - IsPointerType(lldb::opaque_compiler_type_t type, CompilerType *pointee_type = nullptr) override; + bool IsPossibleDynamicType(lldb::opaque_compiler_type_t type, + CompilerType *target_type, bool check_cplusplus, + bool check_objc) override; - bool - IsReferenceType(lldb::opaque_compiler_type_t type, CompilerType *pointee_type = nullptr, - bool *is_rvalue = nullptr) override; + bool IsPointerType(lldb::opaque_compiler_type_t type, + CompilerType *pointee_type = nullptr) override; - bool - IsPointerOrReferenceType(lldb::opaque_compiler_type_t type, CompilerType *pointee_type = nullptr) override; + bool IsReferenceType(lldb::opaque_compiler_type_t type, + CompilerType *pointee_type = nullptr, + bool *is_rvalue = nullptr) override; - bool - IsScalarType(lldb::opaque_compiler_type_t type) override; + bool IsPointerOrReferenceType(lldb::opaque_compiler_type_t type, + CompilerType *pointee_type = nullptr) override; - bool - IsVoidType(lldb::opaque_compiler_type_t type) override; + bool IsScalarType(lldb::opaque_compiler_type_t type) override; - bool - IsCStringType(lldb::opaque_compiler_type_t type, uint32_t &length) override; + bool IsVoidType(lldb::opaque_compiler_type_t type) override; - bool - IsRuntimeGeneratedType(lldb::opaque_compiler_type_t type) override; + bool IsCStringType(lldb::opaque_compiler_type_t type, + uint32_t &length) override; - bool - IsTypedefType(lldb::opaque_compiler_type_t type) override; + bool IsRuntimeGeneratedType(lldb::opaque_compiler_type_t type) override; - bool - IsVectorType(lldb::opaque_compiler_type_t type, CompilerType *element_type, uint64_t *size) override; + bool IsTypedefType(lldb::opaque_compiler_type_t type) override; - bool - IsPolymorphicClass(lldb::opaque_compiler_type_t type) override; + bool IsVectorType(lldb::opaque_compiler_type_t type, + CompilerType *element_type, uint64_t *size) override; - bool - IsCompleteType(lldb::opaque_compiler_type_t type) override; + bool IsPolymorphicClass(lldb::opaque_compiler_type_t type) override; - bool - IsConst(lldb::opaque_compiler_type_t type) override; + bool IsCompleteType(lldb::opaque_compiler_type_t type) override; - bool - IsBeingDefined(lldb::opaque_compiler_type_t type) override; + bool IsConst(lldb::opaque_compiler_type_t type) override; - bool - IsDefined(lldb::opaque_compiler_type_t type) override; + bool IsBeingDefined(lldb::opaque_compiler_type_t type) override; - uint32_t - IsHomogeneousAggregate(lldb::opaque_compiler_type_t type, CompilerType *base_type_ptr) override; + bool IsDefined(lldb::opaque_compiler_type_t type) override; - bool - SupportsLanguage(lldb::LanguageType language) override; + uint32_t IsHomogeneousAggregate(lldb::opaque_compiler_type_t type, + CompilerType *base_type_ptr) override; - bool - GetCompleteType(lldb::opaque_compiler_type_t type) override; + bool SupportsLanguage(lldb::LanguageType language) override; - ConstString - GetTypeName(lldb::opaque_compiler_type_t type) override; + bool GetCompleteType(lldb::opaque_compiler_type_t type) override; - uint32_t - GetTypeInfo(lldb::opaque_compiler_type_t type, CompilerType *pointee_or_element_compiler_type = nullptr) override; + ConstString GetTypeName(lldb::opaque_compiler_type_t type) override; - lldb::TypeClass - GetTypeClass(lldb::opaque_compiler_type_t type) override; + uint32_t GetTypeInfo( + lldb::opaque_compiler_type_t type, + CompilerType *pointee_or_element_compiler_type = nullptr) override; - lldb::LanguageType - GetMinimumLanguage(lldb::opaque_compiler_type_t type) override; + lldb::TypeClass GetTypeClass(lldb::opaque_compiler_type_t type) override; - CompilerType - GetArrayElementType(lldb::opaque_compiler_type_t type, uint64_t *stride = nullptr) override; + lldb::LanguageType + GetMinimumLanguage(lldb::opaque_compiler_type_t type) override; - CompilerType - GetPointeeType(lldb::opaque_compiler_type_t type) override; + CompilerType GetArrayElementType(lldb::opaque_compiler_type_t type, + uint64_t *stride = nullptr) override; - CompilerType - GetPointerType(lldb::opaque_compiler_type_t type) override; + CompilerType GetPointeeType(lldb::opaque_compiler_type_t type) override; - CompilerType - GetCanonicalType(lldb::opaque_compiler_type_t type) override; + CompilerType GetPointerType(lldb::opaque_compiler_type_t type) override; - CompilerType - GetFullyUnqualifiedType(lldb::opaque_compiler_type_t type) override; + CompilerType GetCanonicalType(lldb::opaque_compiler_type_t type) override; - CompilerType - GetNonReferenceType(lldb::opaque_compiler_type_t type) override; + CompilerType + GetFullyUnqualifiedType(lldb::opaque_compiler_type_t type) override; - CompilerType - GetTypedefedType(lldb::opaque_compiler_type_t type) override; + CompilerType GetNonReferenceType(lldb::opaque_compiler_type_t type) override; - CompilerType - GetBasicTypeFromAST(lldb::BasicType basic_type) override; + CompilerType GetTypedefedType(lldb::opaque_compiler_type_t type) override; - CompilerType - GetBuiltinTypeForEncodingAndBitSize(lldb::Encoding encoding, size_t bit_size) override; + CompilerType GetBasicTypeFromAST(lldb::BasicType basic_type) override; - size_t - GetTypeBitAlign(lldb::opaque_compiler_type_t type) override; + CompilerType GetBuiltinTypeForEncodingAndBitSize(lldb::Encoding encoding, + size_t bit_size) override; - lldb::BasicType - GetBasicTypeEnumeration(lldb::opaque_compiler_type_t type) override; + size_t GetTypeBitAlign(lldb::opaque_compiler_type_t type) override; - uint64_t - GetBitSize(lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) override; + lldb::BasicType + GetBasicTypeEnumeration(lldb::opaque_compiler_type_t type) override; - lldb::Encoding - GetEncoding(lldb::opaque_compiler_type_t type, uint64_t &count) override; + uint64_t GetBitSize(lldb::opaque_compiler_type_t type, + ExecutionContextScope *exe_scope) override; - lldb::Format - GetFormat(lldb::opaque_compiler_type_t type) override; + lldb::Encoding GetEncoding(lldb::opaque_compiler_type_t type, + uint64_t &count) override; - unsigned - GetTypeQualifiers(lldb::opaque_compiler_type_t type) override; + lldb::Format GetFormat(lldb::opaque_compiler_type_t type) override; - size_t - GetNumTemplateArguments(lldb::opaque_compiler_type_t type) override; + unsigned GetTypeQualifiers(lldb::opaque_compiler_type_t type) override; - CompilerType - GetTemplateArgument(lldb::opaque_compiler_type_t type, size_t idx, lldb::TemplateArgumentKind &kind) override; + size_t GetNumTemplateArguments(lldb::opaque_compiler_type_t type) override; - int - GetFunctionArgumentCount(lldb::opaque_compiler_type_t type) override; + CompilerType GetTemplateArgument(lldb::opaque_compiler_type_t type, + size_t idx, + lldb::TemplateArgumentKind &kind) override; - CompilerType - GetFunctionArgumentTypeAtIndex(lldb::opaque_compiler_type_t type, size_t idx) override; + int GetFunctionArgumentCount(lldb::opaque_compiler_type_t type) override; - CompilerType - GetFunctionReturnType(lldb::opaque_compiler_type_t type) override; + CompilerType GetFunctionArgumentTypeAtIndex(lldb::opaque_compiler_type_t type, + size_t idx) override; - size_t - GetNumMemberFunctions(lldb::opaque_compiler_type_t type) override; + CompilerType + GetFunctionReturnType(lldb::opaque_compiler_type_t type) override; - TypeMemberFunctionImpl - GetMemberFunctionAtIndex(lldb::opaque_compiler_type_t type, size_t idx) override; + size_t GetNumMemberFunctions(lldb::opaque_compiler_type_t type) override; - uint32_t - GetNumFields(lldb::opaque_compiler_type_t type) override; + TypeMemberFunctionImpl + GetMemberFunctionAtIndex(lldb::opaque_compiler_type_t type, + size_t idx) override; - CompilerType - GetFieldAtIndex(lldb::opaque_compiler_type_t type, size_t idx, std::string &name, uint64_t *bit_offset_ptr, - uint32_t *bitfield_bit_size_ptr, bool *is_bitfield_ptr) override; + uint32_t GetNumFields(lldb::opaque_compiler_type_t type) override; - uint32_t - GetNumChildren(lldb::opaque_compiler_type_t type, bool omit_empty_base_classes) override; + CompilerType GetFieldAtIndex(lldb::opaque_compiler_type_t type, size_t idx, + std::string &name, uint64_t *bit_offset_ptr, + uint32_t *bitfield_bit_size_ptr, + bool *is_bitfield_ptr) override; - uint32_t - GetNumDirectBaseClasses(lldb::opaque_compiler_type_t type) override; + uint32_t GetNumChildren(lldb::opaque_compiler_type_t type, + bool omit_empty_base_classes) override; - uint32_t - GetNumVirtualBaseClasses(lldb::opaque_compiler_type_t type) override; + uint32_t GetNumDirectBaseClasses(lldb::opaque_compiler_type_t type) override; - CompilerType - GetDirectBaseClassAtIndex(lldb::opaque_compiler_type_t type, size_t idx, uint32_t *bit_offset_ptr) override; + uint32_t GetNumVirtualBaseClasses(lldb::opaque_compiler_type_t type) override; - CompilerType - GetVirtualBaseClassAtIndex(lldb::opaque_compiler_type_t type, size_t idx, uint32_t *bit_offset_ptr) override; + CompilerType GetDirectBaseClassAtIndex(lldb::opaque_compiler_type_t type, + size_t idx, + uint32_t *bit_offset_ptr) override; - size_t - ConvertStringToFloatValue(lldb::opaque_compiler_type_t type, const char *s, uint8_t *dst, size_t dst_size) override; + CompilerType GetVirtualBaseClassAtIndex(lldb::opaque_compiler_type_t type, + size_t idx, + uint32_t *bit_offset_ptr) override; - void - DumpValue(lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, Stream *s, lldb::Format format, - const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size, uint32_t bitfield_bit_size, - uint32_t bitfield_bit_offset, bool show_types, bool show_summary, bool verbose, uint32_t depth) override; + size_t ConvertStringToFloatValue(lldb::opaque_compiler_type_t type, + const char *s, uint8_t *dst, + size_t dst_size) override; - bool - DumpTypeValue(lldb::opaque_compiler_type_t type, Stream *s, lldb::Format format, const DataExtractor &data, - lldb::offset_t data_offset, size_t data_byte_size, uint32_t bitfield_bit_size, - uint32_t bitfield_bit_offset, ExecutionContextScope *exe_scope) override; + void DumpValue(lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, + Stream *s, lldb::Format format, const DataExtractor &data, + lldb::offset_t data_offset, size_t data_byte_size, + uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, + bool show_types, bool show_summary, bool verbose, + uint32_t depth) override; - void - DumpTypeDescription(lldb::opaque_compiler_type_t type) override; + bool DumpTypeValue(lldb::opaque_compiler_type_t type, Stream *s, + lldb::Format format, const DataExtractor &data, + lldb::offset_t data_offset, size_t data_byte_size, + uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, + ExecutionContextScope *exe_scope) override; - void - DumpTypeDescription(lldb::opaque_compiler_type_t type, Stream *s) override; + void DumpTypeDescription(lldb::opaque_compiler_type_t type) override; - void - DumpSummary(lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, Stream *s, const DataExtractor &data, - lldb::offset_t data_offset, size_t data_byte_size) override; + void DumpTypeDescription(lldb::opaque_compiler_type_t type, + Stream *s) override; - CompilerType - GetChildCompilerTypeAtIndex(lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, size_t idx, - bool transparent_pointers, bool omit_empty_base_classes, bool ignore_array_bounds, - std::string &child_name, uint32_t &child_byte_size, int32_t &child_byte_offset, - uint32_t &child_bitfield_bit_size, uint32_t &child_bitfield_bit_offset, - bool &child_is_base_class, bool &child_is_deref_of_parent, ValueObject *valobj, - uint64_t &language_flags) override; + void DumpSummary(lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, + Stream *s, const DataExtractor &data, + lldb::offset_t data_offset, size_t data_byte_size) override; - uint32_t - GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, const char *name, bool omit_empty_base_classes) override; + CompilerType GetChildCompilerTypeAtIndex( + lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, size_t idx, + bool transparent_pointers, bool omit_empty_base_classes, + bool ignore_array_bounds, std::string &child_name, + uint32_t &child_byte_size, int32_t &child_byte_offset, + uint32_t &child_bitfield_bit_size, uint32_t &child_bitfield_bit_offset, + bool &child_is_base_class, bool &child_is_deref_of_parent, + ValueObject *valobj, uint64_t &language_flags) override; - size_t - GetIndexOfChildMemberWithName(lldb::opaque_compiler_type_t type, const char *name, bool omit_empty_base_classes, - std::vector<uint32_t> &child_indexes) override; + uint32_t GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, + const char *name, + bool omit_empty_base_classes) override; - CompilerType - GetLValueReferenceType(lldb::opaque_compiler_type_t type) override; + size_t + GetIndexOfChildMemberWithName(lldb::opaque_compiler_type_t type, + const char *name, bool omit_empty_base_classes, + std::vector<uint32_t> &child_indexes) override; - ConstString - DeclContextGetScopeQualifiedName(lldb::opaque_compiler_type_t opaque_decl_ctx) override; + CompilerType + GetLValueReferenceType(lldb::opaque_compiler_type_t type) override; - CompilerType - CreateBaseType(const ConstString &name); + ConstString DeclContextGetScopeQualifiedName( + lldb::opaque_compiler_type_t opaque_decl_ctx) override; - CompilerType - CreateObjectType(const ConstString &name, const ConstString &linkage_name, uint32_t byte_size); + CompilerType CreateBaseType(const ConstString &name); - CompilerType - CreateArrayType(const ConstString &linkage_name, const CompilerType &element_type, - const DWARFExpression &length_expression, const lldb::addr_t data_offset); + CompilerType CreateObjectType(const ConstString &name, + const ConstString &linkage_name, + uint32_t byte_size); - CompilerType - CreateReferenceType(const CompilerType &pointee_type); + CompilerType CreateArrayType(const ConstString &linkage_name, + const CompilerType &element_type, + const DWARFExpression &length_expression, + const lldb::addr_t data_offset); - void - CompleteObjectType(const CompilerType &object_type); + CompilerType CreateReferenceType(const CompilerType &pointee_type); - void - AddBaseClassToObject(const CompilerType &object_type, const CompilerType &member_type, uint32_t member_offset); + void CompleteObjectType(const CompilerType &object_type); - void - AddMemberToObject(const CompilerType &object_type, const ConstString &name, const CompilerType &member_type, - uint32_t member_offset); + void AddBaseClassToObject(const CompilerType &object_type, + const CompilerType &member_type, + uint32_t member_offset); - void - SetDynamicTypeId(const CompilerType &type, const DWARFExpression &type_id); + void AddMemberToObject(const CompilerType &object_type, + const ConstString &name, + const CompilerType &member_type, + uint32_t member_offset); - static uint64_t - CalculateDynamicTypeId(ExecutionContext *exe_ctx, const CompilerType &type, ValueObject &in_value); + void SetDynamicTypeId(const CompilerType &type, + const DWARFExpression &type_id); - static ConstString - GetLinkageName(const CompilerType &type); + static uint64_t CalculateDynamicTypeId(ExecutionContext *exe_ctx, + const CompilerType &type, + ValueObject &in_value); - static uint32_t - CalculateArraySize(const CompilerType &type, ValueObject &in_value); + static ConstString GetLinkageName(const CompilerType &type); - static uint64_t - CalculateArrayElementOffset(const CompilerType &type, size_t index); + static uint32_t CalculateArraySize(const CompilerType &type, + ValueObject &in_value); - //------------------------------------------------------------------ - // llvm casting support - //------------------------------------------------------------------ - static bool - classof(const TypeSystem *ts) - { - return ts->getKind() == TypeSystem::eKindJava; - } + static uint64_t CalculateArrayElementOffset(const CompilerType &type, + size_t index); + + //------------------------------------------------------------------ + // llvm casting support + //------------------------------------------------------------------ + static bool classof(const TypeSystem *ts) { + return ts->getKind() == TypeSystem::eKindJava; + } private: - uint32_t m_pointer_byte_size; - std::unique_ptr<DWARFASTParser> m_dwarf_ast_parser_ap; - JavaTypeMap m_array_type_map; - JavaTypeMap m_base_type_map; - JavaTypeMap m_reference_type_map; - JavaTypeMap m_object_type_map; - - JavaASTContext(const JavaASTContext &) = delete; - const JavaASTContext & - operator=(const JavaASTContext &) = delete; + uint32_t m_pointer_byte_size; + std::unique_ptr<DWARFASTParser> m_dwarf_ast_parser_ap; + JavaTypeMap m_array_type_map; + JavaTypeMap m_base_type_map; + JavaTypeMap m_reference_type_map; + JavaTypeMap m_object_type_map; + + JavaASTContext(const JavaASTContext &) = delete; + const JavaASTContext &operator=(const JavaASTContext &) = delete; }; } #endif // liblldb_JavaASTContext_h_ |