LLDB mainline
|
#include <ObjCLanguage.h>
Classes | |
class | MethodName |
Public Member Functions | |
ObjCLanguage ()=default | |
~ObjCLanguage () override=default | |
lldb::LanguageType | GetLanguageType () const override |
llvm::StringRef | GetUserEntryPointName () const override |
std::vector< Language::MethodNameVariant > | GetMethodNameVariants (ConstString method_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< FormattersMatchCandidate > | GetPossibleFormattersMatches (ValueObject &valobj, lldb::DynamicValueType use_dynamic) override |
std::unique_ptr< TypeScavenger > | GetTypeScavenger () 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 Highlighter * | GetHighlighter () const override |
llvm::StringRef | GetInstanceVariableName () 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 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 Highlighter * | GetHighlighter () const |
virtual lldb::TypeCategoryImplSP | GetFormatters () |
virtual HardcodedFormatters::HardcodedFormatFinder | GetHardcodedFormats () |
virtual HardcodedFormatters::HardcodedSummaryFinder | GetHardcodedSummaries () |
virtual HardcodedFormatters::HardcodedSyntheticFinder | GetHardcodedSynthetics () |
virtual std::vector< FormattersMatchCandidate > | GetPossibleFormattersMatches (ValueObject &valobj, lldb::DynamicValueType use_dynamic) |
virtual std::unique_ptr< TypeScavenger > | GetTypeScavenger () |
virtual const char * | GetLanguageSpecificTypeLookupHelp () |
virtual std::vector< Language::MethodNameVariant > | GetMethodNameVariants (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 ConstString | GetDisplayDemangledName (Mangled mangled) const |
virtual void | GetExceptionResolverDescription (bool catch_on, bool throw_on, Stream &s) |
virtual std::vector< ConstString > | GenerateAlternateFunctionManglings (const ConstString mangled) const |
virtual ConstString | FindBestAlternateFunctionMangledName (const Mangled mangled, const SymbolContext &sym_ctx) const |
virtual llvm::StringRef | GetInstanceVariableName () |
virtual bool | IgnoreForLineBreakpoints (const SymbolContext &) const |
Returns true if this SymbolContext should be ignored when setting breakpoints by line (number or regex). | |
virtual bool | SupportsExceptionBreakpointsOnThrow () const |
Returns true if this Language supports exception breakpoints on throw via a corresponding LanguageRuntime plugin. | |
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. | |
Public Member Functions inherited from lldb_private::PluginInterface | |
PluginInterface ()=default | |
virtual | ~PluginInterface ()=default |
virtual llvm::StringRef | GetPluginName ()=0 |
PluginInterface (const PluginInterface &)=delete | |
PluginInterface & | operator= (const PluginInterface &)=delete |
Static Public Member Functions | |
static void | Initialize () |
static void | Terminate () |
static lldb_private::Language * | CreateInstance (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 Language * | FindPlugin (lldb::LanguageType language) |
static Language * | FindPlugin (llvm::StringRef file_path) |
Returns the Language associated with the given file path or a nullptr if there is no known language. | |
static Language * | FindPlugin (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::LanguageType > | GetSupportedLanguages () |
static LanguageSet | GetLanguagesSupportingTypeSystems () |
static LanguageSet | GetLanguagesSupportingTypeSystemsForExpressions () |
static LanguageSet | GetLanguagesSupportingREPLs () |
static LanguageProperties & | GetGlobalLanguageProperties () |
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 () | |
Definition at line 22 of file ObjCLanguage.h.
|
default |
Referenced by CreateInstance().
|
overridedefault |
|
static |
Definition at line 54 of file ObjCLanguage.cpp.
References lldb::eLanguageTypeObjC, and ObjCLanguage().
Referenced by Terminate().
|
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.
[in] | type_hint | A 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. |
Reimplemented from lldb_private::Language.
Definition at line 1002 of file ObjCLanguage.cpp.
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 852 of file ObjCLanguage.cpp.
References lldb_private::DataVisualization::Categories::GetCategory(), GetPluginName(), LoadCoreMediaFormatters(), and LoadObjCFormatters().
|
inlineoverridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 164 of file ObjCLanguage.h.
References m_highlighter.
|
inlineoverridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 195 of file ObjCLanguage.h.
|
inlineoverridevirtual |
Implements lldb_private::Language.
Definition at line 126 of file ObjCLanguage.h.
References lldb::eLanguageTypeObjC.
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 180 of file ObjCLanguage.cpp.
References lldb_private::StreamString::Clear(), lldb_private::ObjCLanguage::MethodName::Create(), lldb_private::StreamString::GetString(), lldb_private::ConstString::GetStringRef(), and lldb_private::Stream::Printf().
|
inlineoverridevirtual |
Returns the summary string for ValueObjects for which IsNilReference() is true.
Reimplemented from lldb_private::Language.
Definition at line 160 of file ObjCLanguage.h.
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 200 of file ObjCLanguage.h.
References GetPluginNameStatic().
Referenced by GetFormatters().
|
inlinestatic |
Definition at line 173 of file ObjCLanguage.h.
Referenced by GetPluginName().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 868 of file ObjCLanguage.cpp.
References lldb::eNoDynamicValues, lldb_private::ObjCLanguageRuntime::Get(), lldb_private::ObjCLanguageRuntime::GetClassDescriptor(), lldb_private::ValueObject::GetCompilerType(), lldb_private::ValueObject::GetProcessSP(), lldb_private::ValueObject::GetTargetSP(), lldb_private::ClangUtil::IsClangType(), and lldb_private::CompilerType::IsPossibleDynamicType().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 905 of file ObjCLanguage.cpp.
References lldb_private::ExecutionContextScope::CalculateProcess(), lldb_private::ExecutionContextScope::CalculateTarget(), lldb::eLanguageTypeC, lldb_private::Stream::EOL(), lldb_private::ObjCLanguageRuntime::Get(), lldb_private::CompilerType::GetMinimumLanguage(), lldb_private::CompilerType::GetTypedefedType(), lldb_private::CompilerType::IsTypedefType(), lldb_private::Language::TypeScavenger::Result::IsValid(), lldb_private::Language::LanguageIsObjC(), and UINT32_MAX.
|
inlineoverridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 130 of file ObjCLanguage.h.
|
static |
Definition at line 43 of file ObjCLanguage.cpp.
References lldb_private::PluginManager::RegisterPlugin().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 1024 of file ObjCLanguage.cpp.
References lldb_private::ValueObject::GetCompilerType(), lldb_private::CompilerType::GetTypeInfo(), and lldb_private::ValueObject::GetValueAsUnsigned().
|
inlinestatic |
Definition at line 175 of file ObjCLanguage.h.
Referenced by lldb_private::plugin::dwarf::DWARFIndex::ProcessFunctionDIE(), and SymbolNameFitsToLanguage().
|
inlinestatic |
Definition at line 183 of file ObjCLanguage.h.
|
overridevirtual |
Implements lldb_private::Language.
Definition at line 1035 of file ObjCLanguage.cpp.
|
inlineoverridevirtual |
Returns true if this Language supports exception breakpoints on throw via a corresponding LanguageRuntime plugin.
Reimplemented from lldb_private::Language.
Definition at line 197 of file ObjCLanguage.h.
|
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 225 of file ObjCLanguage.cpp.
References lldb_private::ConstString::GetCString(), lldb_private::Mangled::GetDemangledName(), and IsPossibleObjCMethodName().
|
static |
Definition at line 48 of file ObjCLanguage.cpp.
References CreateInstance(), and lldb_private::PluginManager::UnregisterPlugin().
|
private |
Definition at line 23 of file ObjCLanguage.h.
Referenced by GetHighlighter().