LLDB mainline
Classes | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
lldb_private::CPlusPlusLanguage Class Reference

#include <CPlusPlusLanguage.h>

Inheritance diagram for lldb_private::CPlusPlusLanguage:
Inheritance graph
[legend]

Classes

class  MethodName
 

Public Member Functions

 CPlusPlusLanguage ()=default
 
 ~CPlusPlusLanguage () override=default
 
lldb::LanguageType GetLanguageType () const override
 
llvm::StringRef GetUserEntryPointName () const override
 
std::unique_ptr< TypeScavengerGetTypeScavenger () override
 
lldb::TypeCategoryImplSP GetFormatters () override
 
HardcodedFormatters::HardcodedSummaryFinder GetHardcodedSummaries () override
 
HardcodedFormatters::HardcodedSyntheticFinder GetHardcodedSynthetics () override
 
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
 
bool SymbolNameFitsToLanguage (Mangled mangled) const override
 Returns true iff the given symbol name is compatible with the mangling scheme of this language.
 
bool DemangledNameContainsPath (llvm::StringRef path, ConstString demangled) const override
 
ConstString GetDemangledFunctionNameWithoutArguments (Mangled mangled) const override
 
bool GetFunctionDisplayName (const SymbolContext *sc, const ExecutionContext *exe_ctx, FunctionNameRepresentation representation, Stream &s) override
 
std::vector< ConstStringGenerateAlternateFunctionManglings (const ConstString mangled) const override
 
ConstString FindBestAlternateFunctionMangledName (const Mangled mangled, const SymbolContext &sym_ctx) const override
 
llvm::StringRef GetInstanceVariableName () override
 
llvm::StringRef GetPluginName () override
 
- Public Member Functions inherited from lldb_private::Language
 ~Language () override
 
virtual lldb::LanguageType GetLanguageType () const =0
 
virtual llvm::StringRef GetUserEntryPointName () const
 
virtual bool IsTopLevelFunction (Function &function)
 
virtual bool IsSourceFile (llvm::StringRef file_path) const =0
 
virtual const HighlighterGetHighlighter () const
 
virtual lldb::TypeCategoryImplSP GetFormatters ()
 
virtual HardcodedFormatters::HardcodedFormatFinder GetHardcodedFormats ()
 
virtual HardcodedFormatters::HardcodedSummaryFinder GetHardcodedSummaries ()
 
virtual HardcodedFormatters::HardcodedSyntheticFinder GetHardcodedSynthetics ()
 
virtual std::vector< FormattersMatchCandidateGetPossibleFormattersMatches (ValueObject &valobj, lldb::DynamicValueType use_dynamic)
 
virtual std::unique_ptr< TypeScavengerGetTypeScavenger ()
 
virtual const char * GetLanguageSpecificTypeLookupHelp ()
 
virtual std::vector< Language::MethodNameVariantGetMethodNameVariants (ConstString method_name) const
 
virtual bool SymbolNameFitsToLanguage (Mangled name) const
 Returns true iff the given symbol name is compatible with the mangling scheme of this language.
 
virtual std::pair< llvm::StringRef, llvm::StringRef > GetFormatterPrefixSuffix (llvm::StringRef type_hint)
 An individual data formatter may apply to several types and cross language boundaries.
 
virtual bool DemangledNameContainsPath (llvm::StringRef path, ConstString demangled) const
 
virtual DumpValueObjectOptions::DeclPrintingHelper GetDeclPrintingHelper ()
 
virtual LazyBool IsLogicalTrue (ValueObject &valobj, Status &error)
 
virtual bool IsNilReference (ValueObject &valobj)
 
virtual llvm::StringRef GetNilReferenceSummaryString ()
 Returns the summary string for ValueObjects for which IsNilReference() is true.
 
virtual bool IsUninitializedReference (ValueObject &valobj)
 
virtual bool GetFunctionDisplayName (const SymbolContext *sc, const ExecutionContext *exe_ctx, FunctionNameRepresentation representation, Stream &s)
 
virtual ConstString GetDemangledFunctionNameWithoutArguments (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 llvm::StringRef GetInstanceVariableName ()
 
- Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
 
virtual ~PluginInterface ()=default
 
virtual llvm::StringRef GetPluginName ()=0
 
 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 IsCPPMangledName (llvm::StringRef name)
 
static bool ExtractContextAndIdentifier (const char *name, llvm::StringRef &context, llvm::StringRef &identifier)
 
- 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 ()
 

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 24 of file CPlusPlusLanguage.h.

Constructor & Destructor Documentation

◆ CPlusPlusLanguage()

lldb_private::CPlusPlusLanguage::CPlusPlusLanguage ( )
default

Referenced by CreateInstance().

◆ ~CPlusPlusLanguage()

lldb_private::CPlusPlusLanguage::~CPlusPlusLanguage ( )
overridedefault

Member Function Documentation

◆ CreateInstance()

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

◆ DemangledNameContainsPath()

bool CPlusPlusLanguage::DemangledNameContainsPath ( llvm::StringRef  path,
ConstString  demangled 
) const
overridevirtual

◆ ExtractContextAndIdentifier()

bool CPlusPlusLanguage::ExtractContextAndIdentifier ( const char *  name,
llvm::StringRef &  context,
llvm::StringRef &  identifier 
)
static

◆ FindBestAlternateFunctionMangledName()

ConstString CPlusPlusLanguage::FindBestAlternateFunctionMangledName ( const Mangled  mangled,
const SymbolContext sym_ctx 
) const
overridevirtual

◆ GenerateAlternateFunctionManglings()

std::vector< ConstString > CPlusPlusLanguage::GenerateAlternateFunctionManglings ( const ConstString  mangled) const
overridevirtual

Get a basic set of alternative manglings for the given symbol name, by making a few basic possible substitutions on basic types, storage duration and constness for the given symbol. The output parameter alternates is filled with a best-guess, non-exhaustive set of different manglings for the given name.

Reimplemented from lldb_private::Language.

Definition at line 531 of file CPlusPlusLanguage.cpp.

References lldb_private::ConstString::GetCString(), and lldb_private::ConstString::GetStringRef().

◆ GetDemangledFunctionNameWithoutArguments()

ConstString CPlusPlusLanguage::GetDemangledFunctionNameWithoutArguments ( Mangled  mangled) const
overridevirtual

◆ GetFormatters()

lldb::TypeCategoryImplSP CPlusPlusLanguage::GetFormatters ( )
overridevirtual

◆ GetFunctionDisplayName()

bool CPlusPlusLanguage::GetFunctionDisplayName ( const SymbolContext sc,
const ExecutionContext exe_ctx,
FunctionNameRepresentation  representation,
Stream s 
)
overridevirtual

◆ GetHardcodedSummaries()

HardcodedFormatters::HardcodedSummaryFinder CPlusPlusLanguage::GetHardcodedSummaries ( )
overridevirtual

◆ GetHardcodedSynthetics()

HardcodedFormatters::HardcodedSyntheticFinder CPlusPlusLanguage::GetHardcodedSynthetics ( )
overridevirtual

◆ GetHighlighter()

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

Reimplemented from lldb_private::Language.

Definition at line 122 of file CPlusPlusLanguage.h.

References m_highlighter.

◆ GetInstanceVariableName()

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

Reimplemented from lldb_private::Language.

Definition at line 170 of file CPlusPlusLanguage.h.

◆ GetLanguageType()

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

Implements lldb_private::Language.

Definition at line 102 of file CPlusPlusLanguage.h.

References lldb::eLanguageTypeC_plus_plus.

◆ GetNilReferenceSummaryString()

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

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

Reimplemented from lldb_private::Language.

Definition at line 118 of file CPlusPlusLanguage.h.

◆ GetPluginName()

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

Implements lldb_private::PluginInterface.

Definition at line 173 of file CPlusPlusLanguage.h.

References GetPluginNameStatic().

Referenced by GetFormatters().

◆ GetPluginNameStatic()

static llvm::StringRef lldb_private::CPlusPlusLanguage::GetPluginNameStatic ( )
inlinestatic

Definition at line 131 of file CPlusPlusLanguage.h.

Referenced by GetPluginName().

◆ GetTypeScavenger()

std::unique_ptr< Language::TypeScavenger > CPlusPlusLanguage::GetTypeScavenger ( )
overridevirtual

◆ GetUserEntryPointName()

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

Reimplemented from lldb_private::Language.

Definition at line 106 of file CPlusPlusLanguage.h.

◆ Initialize()

void CPlusPlusLanguage::Initialize ( )
static

◆ IsCPPMangledName()

bool CPlusPlusLanguage::IsCPPMangledName ( llvm::StringRef  name)
static

◆ IsNilReference()

bool CPlusPlusLanguage::IsNilReference ( ValueObject valobj)
overridevirtual

◆ IsSourceFile()

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

Implements lldb_private::Language.

Definition at line 1525 of file CPlusPlusLanguage.cpp.

◆ SymbolNameFitsToLanguage()

bool CPlusPlusLanguage::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 65 of file CPlusPlusLanguage.cpp.

References lldb_private::ConstString::GetCString(), lldb_private::Mangled::GetMangledName(), and IsCPPMangledName().

◆ Terminate()

void CPlusPlusLanguage::Terminate ( )
static

Member Data Documentation

◆ m_highlighter

ClangHighlighter lldb_private::CPlusPlusLanguage::m_highlighter
private

Definition at line 25 of file CPlusPlusLanguage.h.

Referenced by GetHighlighter().


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