LLDB mainline
|
#include <ObjCLanguage.h>
Classes | |
class | ObjCMethodName |
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 |
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< 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 |
virtual std::optional< bool > | GetBooleanFromString (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::MethodName > | GetMethodName (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< ConstString > | GenerateAlternateFunctionManglings (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< bool > | AreEqualForFrameComparison (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 | |
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(), and Initialize().
|
overridedefault |
|
static |
Definition at line 54 of file ObjCLanguage.cpp.
References lldb::eLanguageTypeObjC, lldb_private::Language::Language(), and ObjCLanguage().
Referenced by Initialize(), and Terminate().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 1062 of file ObjCLanguage.cpp.
|
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 1019 of file ObjCLanguage.cpp.
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 869 of file ObjCLanguage.cpp.
References lldb_private::DataVisualization::Categories::GetCategory(), GetPluginName(), LoadCoreMediaFormatters(), and LoadObjCFormatters().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 226 of file ObjCLanguage.cpp.
References lldb_private::ConstString::GetCString(), IsPossibleObjCMethodName(), and IsPossibleObjCSelector().
|
inlineoverridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 167 of file ObjCLanguage.h.
References m_highlighter.
|
inlineoverridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 198 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::ObjCMethodName::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 163 of file ObjCLanguage.h.
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 206 of file ObjCLanguage.h.
References GetPluginNameStatic().
Referenced by GetFormatters().
|
inlinestatic |
Definition at line 176 of file ObjCLanguage.h.
Referenced by GetPluginName(), and Initialize().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 885 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 922 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 CreateInstance(), GetPluginNameStatic(), Initialize(), ObjCLanguage(), and lldb_private::PluginManager::RegisterPlugin().
Referenced by Initialize().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 1041 of file ObjCLanguage.cpp.
References lldb_private::ValueObject::GetCompilerType(), and lldb_private::ValueObject::GetValueAsUnsigned().
|
inlinestatic |
Definition at line 178 of file ObjCLanguage.h.
Referenced by GetFunctionNameInfo(), lldb_private::plugin::dwarf::DWARFIndex::ProcessFunctionDIE(), and SymbolNameFitsToLanguage().
|
inlinestatic |
Definition at line 186 of file ObjCLanguage.h.
Referenced by GetFunctionNameInfo().
|
overridevirtual |
Implements lldb_private::Language.
Definition at line 1052 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 203 of file ObjCLanguage.h.
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().
|
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().