LLDB mainline
lldb_private::ObjCLanguage Class Reference

#include <ObjCLanguage.h>

Inheritance diagram for lldb_private::ObjCLanguage:
[legend]

Classes

class  ObjCMethodName

Public Member Functions

 ObjCLanguage ()=default
 ~ObjCLanguage () override=default
lldb::LanguageType GetLanguageType () const override
llvm::StringRef GetUserEntryPointName () const override
std::vector< Language::MethodNameVariantGetMethodNameVariants (ConstString method_name) const override
std::pair< lldb::FunctionNameType, std::optional< ConstString > > GetFunctionNameInfo (ConstString name) const override
bool SymbolNameFitsToLanguage (Mangled mangled) const override
 Returns true iff the given symbol name is compatible with the mangling scheme of this language.
lldb::TypeCategoryImplSP GetFormatters () override
std::vector< FormattersMatchCandidateGetPossibleFormattersMatches (ValueObject &valobj, lldb::DynamicValueType use_dynamic) override
std::unique_ptr< TypeScavengerGetTypeScavenger () override
std::pair< llvm::StringRef, llvm::StringRef > GetFormatterPrefixSuffix (llvm::StringRef type_hint) override
 An individual data formatter may apply to several types and cross language boundaries.
bool IsNilReference (ValueObject &valobj) override
llvm::StringRef GetNilReferenceSummaryString () override
 Returns the summary string for ValueObjects for which IsNilReference() is true.
bool IsSourceFile (llvm::StringRef file_path) const override
const HighlighterGetHighlighter () const override
llvm::StringRef GetInstanceVariableName () override
virtual std::optional< boolGetBooleanFromString (llvm::StringRef str) const override
bool SupportsExceptionBreakpointsOnThrow () const override
 Returns true if this Language supports exception breakpoints on throw via a corresponding LanguageRuntime plugin.
llvm::StringRef GetPluginName () override
Public Member Functions inherited from lldb_private::Language
 ~Language () override
virtual bool IsTopLevelFunction (Function &function)
virtual HardcodedFormatters::HardcodedFormatFinder GetHardcodedFormats ()
virtual HardcodedFormatters::HardcodedSummaryFinder GetHardcodedSummaries ()
virtual HardcodedFormatters::HardcodedSyntheticFinder GetHardcodedSynthetics ()
virtual const char * GetLanguageSpecificTypeLookupHelp ()
virtual std::unique_ptr< Language::MethodNameGetMethodName (ConstString name) const
virtual bool DemangledNameContainsPath (llvm::StringRef path, ConstString demangled) const
virtual DumpValueObjectOptions::DeclPrintingHelper GetDeclPrintingHelper ()
virtual LazyBool IsLogicalTrue (ValueObject &valobj, Status &error)
virtual bool IsUninitializedReference (ValueObject &valobj)
virtual bool GetFunctionDisplayName (const SymbolContext &sc, const ExecutionContext *exe_ctx, FunctionNameRepresentation representation, Stream &s)
virtual bool HandleFrameFormatVariable (const SymbolContext &sc, const ExecutionContext *exe_ctx, FormatEntity::Entry::Type type, Stream &s)
virtual ConstString GetDemangledFunctionNameWithoutArguments (Mangled mangled) const
virtual ConstString GetDisplayDemangledName (Mangled mangled) const
virtual void GetExceptionResolverDescription (bool catch_on, bool throw_on, Stream &s)
virtual std::vector< ConstStringGenerateAlternateFunctionManglings (const ConstString mangled) const
virtual ConstString FindBestAlternateFunctionMangledName (const Mangled mangled, const SymbolContext &sym_ctx) const
virtual void FilterForLineBreakpoints (llvm::SmallVectorImpl< SymbolContext > &) const
 Given a symbol context list of matches which supposedly represent the same file and line number in a CU, erases those that should be ignored when setting breakpoints by line (number or regex).
virtual std::optional< boolAreEqualForFrameComparison (const SymbolContext &sc1, const SymbolContext &sc2) const
 Returns a boolean indicating whether two symbol contexts are equal for the purposes of frame comparison.
virtual bool SupportsExceptionBreakpointsOnCatch () const
 Returns true if this Language supports exception breakpoints on catch via a corresponding LanguageRuntime plugin.
virtual llvm::StringRef GetThrowKeyword () const
 Returns the keyword used for throw statements in this language, e.g.
virtual llvm::StringRef GetCatchKeyword () const
 Returns the keyword used for catch statements in this language, e.g.
virtual FormatEntity::Entry GetFunctionNameFormat () const
Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
virtual ~PluginInterface ()=default
 PluginInterface (const PluginInterface &)=delete
PluginInterfaceoperator= (const PluginInterface &)=delete

Static Public Member Functions

static void Initialize ()
static void Terminate ()
static lldb_private::LanguageCreateInstance (lldb::LanguageType language)
static llvm::StringRef GetPluginNameStatic ()
static bool IsPossibleObjCMethodName (const char *name)
static bool IsPossibleObjCSelector (const char *name)
Static Public Member Functions inherited from lldb_private::Language
static LanguageFindPlugin (lldb::LanguageType language)
static LanguageFindPlugin (llvm::StringRef file_path)
 Returns the Language associated with the given file path or a nullptr if there is no known language.
static LanguageFindPlugin (lldb::LanguageType language, llvm::StringRef file_path)
static void ForEach (std::function< bool(Language *)> callback)
static void GetDefaultExceptionResolverDescription (bool catch_on, bool throw_on, Stream &s)
static lldb::LanguageType GetLanguageTypeFromString (const char *string)=delete
static lldb::LanguageType GetLanguageTypeFromString (llvm::StringRef string)
static const char * GetNameForLanguageType (lldb::LanguageType language)
static void PrintAllLanguages (Stream &s, const char *prefix, const char *suffix)
static void PrintSupportedLanguagesForExpressions (Stream &s, llvm::StringRef prefix, llvm::StringRef suffix)
 Prints to the specified stream 's' each language type that the current target supports for expression evaluation.
static void ForAllLanguages (std::function< bool(lldb::LanguageType)> callback)
static bool LanguageIsCPlusPlus (lldb::LanguageType language)
static bool LanguageIsObjC (lldb::LanguageType language)
static bool LanguageIsC (lldb::LanguageType language)
static bool LanguageIsCFamily (lldb::LanguageType language)
 Equivalent to LanguageIsC||LanguageIsObjC||LanguageIsCPlusPlus.
static bool LanguageIsPascal (lldb::LanguageType language)
static lldb::LanguageType GetPrimaryLanguage (lldb::LanguageType language)
static std::set< lldb::LanguageTypeGetSupportedLanguages ()
static LanguageSet GetLanguagesSupportingTypeSystems ()
static LanguageSet GetLanguagesSupportingTypeSystemsForExpressions ()
static LanguageSet GetLanguagesSupportingREPLs ()
static LanguagePropertiesGetGlobalLanguageProperties ()

Private Attributes

ClangHighlighter m_highlighter

Additional Inherited Members

Public Types inherited from lldb_private::Language
enum class  FunctionNameRepresentation { eName , eNameWithArgs , eNameWithNoArgs }
Protected Member Functions inherited from lldb_private::Language
 Language ()

Detailed Description

Definition at line 22 of file ObjCLanguage.h.

Constructor & Destructor Documentation

◆ ObjCLanguage()

lldb_private::ObjCLanguage::ObjCLanguage ( )
default

Referenced by CreateInstance(), and Initialize().

◆ ~ObjCLanguage()

lldb_private::ObjCLanguage::~ObjCLanguage ( )
overridedefault

Member Function Documentation

◆ CreateInstance()

Language * ObjCLanguage::CreateInstance ( lldb::LanguageType language)
static

◆ GetBooleanFromString()

std::optional< bool > ObjCLanguage::GetBooleanFromString ( llvm::StringRef str) const
overridevirtual

Reimplemented from lldb_private::Language.

Definition at line 1062 of file ObjCLanguage.cpp.

◆ GetFormatterPrefixSuffix()

std::pair< llvm::StringRef, llvm::StringRef > ObjCLanguage::GetFormatterPrefixSuffix ( llvm::StringRef type_hint)
overridevirtual

An individual data formatter may apply to several types and cross language boundaries.

Each of those languages may want to customize the display of values of said types by appending proper prefix/suffix information in language-specific ways. This function returns that prefix and suffix.

Parameters
[in]type_hintA StringRef used to determine what the prefix and suffix should be. It is called a hint because some types may have multiple variants for which the prefix and/or suffix may vary.
Returns
A std::pair<StringRef, StringRef>, the first being the prefix and the second being the suffix. They may be empty.

Reimplemented from lldb_private::Language.

Definition at line 1019 of file ObjCLanguage.cpp.

◆ GetFormatters()

lldb::TypeCategoryImplSP ObjCLanguage::GetFormatters ( )
overridevirtual

◆ GetFunctionNameInfo()

std::pair< FunctionNameType, std::optional< ConstString > > ObjCLanguage::GetFunctionNameInfo ( ConstString name) const
overridevirtual

◆ GetHighlighter()

const Highlighter * lldb_private::ObjCLanguage::GetHighlighter ( ) const
inlineoverridevirtual

Reimplemented from lldb_private::Language.

Definition at line 167 of file ObjCLanguage.h.

References m_highlighter.

◆ GetInstanceVariableName()

llvm::StringRef lldb_private::ObjCLanguage::GetInstanceVariableName ( )
inlineoverridevirtual

Reimplemented from lldb_private::Language.

Definition at line 198 of file ObjCLanguage.h.

◆ GetLanguageType()

lldb::LanguageType lldb_private::ObjCLanguage::GetLanguageType ( ) const
inlineoverridevirtual

Implements lldb_private::Language.

Definition at line 126 of file ObjCLanguage.h.

References lldb::eLanguageTypeObjC.

◆ GetMethodNameVariants()

◆ GetNilReferenceSummaryString()

llvm::StringRef lldb_private::ObjCLanguage::GetNilReferenceSummaryString ( )
inlineoverridevirtual

Returns the summary string for ValueObjects for which IsNilReference() is true.

Reimplemented from lldb_private::Language.

Definition at line 163 of file ObjCLanguage.h.

◆ GetPluginName()

llvm::StringRef lldb_private::ObjCLanguage::GetPluginName ( )
inlineoverridevirtual

Implements lldb_private::PluginInterface.

Definition at line 206 of file ObjCLanguage.h.

References GetPluginNameStatic().

Referenced by GetFormatters().

◆ GetPluginNameStatic()

llvm::StringRef lldb_private::ObjCLanguage::GetPluginNameStatic ( )
inlinestatic

Definition at line 176 of file ObjCLanguage.h.

Referenced by GetPluginName(), and Initialize().

◆ GetPossibleFormattersMatches()

◆ GetTypeScavenger()

◆ GetUserEntryPointName()

llvm::StringRef lldb_private::ObjCLanguage::GetUserEntryPointName ( ) const
inlineoverridevirtual

Reimplemented from lldb_private::Language.

Definition at line 130 of file ObjCLanguage.h.

◆ Initialize()

void ObjCLanguage::Initialize ( )
static

◆ IsNilReference()

bool ObjCLanguage::IsNilReference ( ValueObject & valobj)
overridevirtual

◆ IsPossibleObjCMethodName()

bool lldb_private::ObjCLanguage::IsPossibleObjCMethodName ( const char * name)
inlinestatic

◆ IsPossibleObjCSelector()

bool lldb_private::ObjCLanguage::IsPossibleObjCSelector ( const char * name)
inlinestatic

Definition at line 186 of file ObjCLanguage.h.

Referenced by GetFunctionNameInfo().

◆ IsSourceFile()

bool ObjCLanguage::IsSourceFile ( llvm::StringRef file_path) const
overridevirtual

Implements lldb_private::Language.

Definition at line 1052 of file ObjCLanguage.cpp.

◆ SupportsExceptionBreakpointsOnThrow()

bool lldb_private::ObjCLanguage::SupportsExceptionBreakpointsOnThrow ( ) const
inlineoverridevirtual

Returns true if this Language supports exception breakpoints on throw via a corresponding LanguageRuntime plugin.

Reimplemented from lldb_private::Language.

Definition at line 203 of file ObjCLanguage.h.

◆ SymbolNameFitsToLanguage()

bool ObjCLanguage::SymbolNameFitsToLanguage ( Mangled name) const
overridevirtual

Returns true iff the given symbol name is compatible with the mangling scheme of this language.

This function should only return true if there is a high confidence that the name actually belongs to this language.

Reimplemented from lldb_private::Language.

Definition at line 238 of file ObjCLanguage.cpp.

References lldb_private::ConstString::GetCString(), lldb_private::Mangled::GetDemangledName(), and IsPossibleObjCMethodName().

◆ Terminate()

void ObjCLanguage::Terminate ( )
static

Member Data Documentation

◆ m_highlighter

ClangHighlighter lldb_private::ObjCLanguage::m_highlighter
private

Definition at line 23 of file ObjCLanguage.h.

Referenced by GetHighlighter().


The documentation for this class was generated from the following files: