|
LLDB mainline
|
#include <CPlusPlusLanguage.h>
Classes | |
| class | CxxMethodName |
Public Member Functions | |
| CPlusPlusLanguage ()=default | |
| ~CPlusPlusLanguage () override=default | |
| virtual std::unique_ptr< Language::MethodName > | GetMethodName (llvm::StringRef name) const override |
| std::pair< lldb::FunctionNameType, std::optional< ConstString > > | GetFunctionNameInfo (ConstString name) const override |
| lldb::LanguageType | GetLanguageType () const override |
| llvm::StringRef | GetUserEntryPointName () const override |
| std::unique_ptr< TypeScavenger > | GetTypeScavenger () 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 |
| bool | SymbolNameFitsToLanguage (const Mangled &mangled) const override |
| Returns true iff the given symbol name is compatible with the mangling scheme of this language. | |
| DemangledName | DemangleSymbol (ConstString mangled, Mangled::ManglingScheme scheme, const DemangleOptions &options) const override |
Demangle mangled, a name mangled with scheme, a scheme that this language registered with Mangled::RegisterManglingScheme(). | |
| std::unique_ptr< MangledNameParser > | CreateMangledNameParser (Mangled::ManglingScheme scheme) const override |
Returns a parser for the names mangled with scheme, a scheme that this language registered, or a nullptr if the symbol table should index them by their demangled names. | |
| 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 |
| bool | HandleFrameFormatVariable (const SymbolContext &sc, const ExecutionContext *exe_ctx, FormatEntity::Entry::Type type, Stream &s) override |
| std::vector< ConstString > | GenerateAlternateFunctionManglings (const ConstString mangled) const override |
| ConstString | FindBestAlternateFunctionMangledName (const Mangled mangled, const SymbolContext &sym_ctx) const override |
| llvm::StringRef | GetInstanceName () override |
| FormatEntity::Entry | GetFunctionNameFormat () const override |
| std::string | GetVersionInfo () const override |
| Returns text to append to LLDB's version string, such as the revisions of compilers embedded in this 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 std::vector< FormattersMatchCandidate > | GetPossibleFormattersMatches (ValueObject &valobj, lldb::DynamicValueType use_dynamic) |
| virtual const char * | GetLanguageSpecificTypeLookupHelp () |
| virtual std::vector< Language::MethodNameVariant > | GetMethodNameVariants (llvm::StringRef method_name) const |
| 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 DumpValueObjectOptions::DeclPrintingHelper | GetDeclPrintingHelper () |
| virtual LazyBool | IsLogicalTrue (ValueObject &valobj, Status &error) |
| virtual bool | IsUninitializedReference (ValueObject &valobj) |
| virtual ConstString | GetDisplayDemangledName (Mangled mangled) const |
| virtual void | GetExceptionResolverDescription (bool catch_on, bool throw_on, Stream &s) |
| 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 std::optional< bool > | GetBooleanFromString (llvm::StringRef str) const |
| 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 |
| 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 | IsCPPMangledName (llvm::StringRef name) |
| static llvm::StringRef | GetDemangledBasename (llvm::StringRef demangled, const DemangledNameInfo &info) |
| static llvm::Expected< llvm::StringRef > | GetDemangledTemplateArguments (llvm::StringRef demangled, const DemangledNameInfo &info) |
| static llvm::Expected< llvm::StringRef > | GetDemangledReturnTypeLHS (llvm::StringRef demangled, const DemangledNameInfo &info) |
| static llvm::Expected< llvm::StringRef > | GetDemangledFunctionQualifiers (llvm::StringRef demangled, const DemangledNameInfo &info) |
| static llvm::Expected< llvm::StringRef > | GetDemangledScope (llvm::StringRef demangled, const DemangledNameInfo &info) |
| static llvm::Expected< llvm::StringRef > | GetDemangledReturnTypeRHS (llvm::StringRef demangled, const DemangledNameInfo &info) |
| static llvm::Expected< llvm::StringRef > | GetDemangledFunctionArguments (llvm::StringRef demangled, const DemangledNameInfo &info) |
| static llvm::Expected< llvm::StringRef > | GetDemangledFunctionSuffix (llvm::StringRef demangled, const DemangledNameInfo &info) |
| static bool | ExtractContextAndIdentifier (llvm::StringRef name, llvm::StringRef &context, llvm::StringRef &identifier) |
| static llvm::Expected< ConstString > | SubstituteType_ItaniumMangle (llvm::StringRef mangled_name, llvm::StringRef subst_from, llvm::StringRef subst_to) |
Substitutes Itanium type encoding substrings given by subst_from in mangled_name with subst_to. | |
| static llvm::Expected< ConstString > | SubstituteStructor_ItaniumMangle (llvm::StringRef mangled_name, llvm::StringRef subst_from, llvm::StringRef subst_to) |
Substitutes Itanium structor encoding substrings given by subst_from in mangled_name with subst_to. | |
| static llvm::Expected< ConstString > | SubstituteStructorAliases_ItaniumMangle (llvm::StringRef mangled_name) |
Tries replacing Itanium structor encoding substrings in mangled_name with potential aliases.j. | |
| 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 Language * | FindPluginForManglingScheme (Mangled::ManglingScheme scheme) |
Returns the Language that registered scheme with Mangled::RegisterManglingScheme(), or a nullptr if none did. | |
| static llvm::Expected< lldb::LanguageType > | GetExceptionLanguageForLanguage (llvm::StringRef lang_name) |
| static void | ForEach (llvm::function_ref< IterationAction(Language *)> callback) |
| static std::string | GetVersionWithLanguageInfo () |
| Returns lldb_private::GetVersion(), followed by the GetVersionInfo() of each registered language plugin, in language type order. | |
| 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) |
| Returns the internal LLDB name for the specified language. | |
| static llvm::StringRef | GetDisplayNameForLanguageType (lldb::LanguageType language) |
| Returns a user-friendly name for the specified 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 (llvm::function_ref< IterationAction(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 | LanguageIsFortran (lldb::LanguageType language) |
| 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 () |
Static Private Member Functions | |
| static void | DebuggerInitialize (Debugger &) |
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 23 of file CPlusPlusLanguage.h.
|
default |
Referenced by CreateInstance().
|
overridedefault |
|
static |
Definition at line 323 of file CPlusPlusLanguage.cpp.
References CPlusPlusLanguage(), lldb::eLanguageTypeObjC_plus_plus, lldb_private::Language::Language(), and lldb_private::Language::LanguageIsCPlusPlus().
Referenced by Initialize(), and Terminate().
|
overridevirtual |
Returns a parser for the names mangled with scheme, a scheme that this language registered, or a nullptr if the symbol table should index them by their demangled names.
Reimplemented from lldb_private::Language.
Definition at line 285 of file CPlusPlusLanguage.cpp.
References IsCPlusPlusManglingScheme().
|
staticprivate |
Definition at line 2977 of file CPlusPlusLanguage.cpp.
References lldb_private::PluginManager::CreateSettingForCPlusPlusLanguagePlugin(), GetGlobalPluginProperties(), and lldb_private::PluginManager::GetSettingForCPlusPlusLanguagePlugin().
Referenced by Initialize().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 786 of file CPlusPlusLanguage.cpp.
References lldb_private::CPlusPlusLanguage::CxxMethodName::ContainsPath(), and lldb_private::ConstString::GetStringRef().
|
overridevirtual |
Demangle mangled, a name mangled with scheme, a scheme that this language registered with Mangled::RegisterManglingScheme().
Reimplemented from lldb_private::Language.
Definition at line 192 of file CPlusPlusLanguage.cpp.
References g_itanium_scheme, g_msvc_scheme, lldb_private::ConstString::GetCString(), GetItaniumDemangledStr(), GetMSVCDemangledStr(), lldb_private::ConstString::GetStringRef(), lldb_private::Language::DemangledName::info, lldb_private::Language::DemangledName::name, and lldb_private::Language::DemangleOptions::want_info.
|
static |
Definition at line 792 of file CPlusPlusLanguage.cpp.
References MSVCUndecoratedNameParser::ExtractContextAndIdentifier(), MSVCUndecoratedNameParser::IsMSVCUndecoratedName(), and lldb_private::CPlusPlusNameParser::ParseAsFullName().
Referenced by lldb_private::CPlusPlusLanguage::CxxMethodName::ContainsPath(), lldb_private::npdb::SymbolFileNativePDB::FindGlobalVariables(), lldb_private::plugin::dwarf::SymbolFileDWARF::FindGlobalVariables(), and GetFunctionNameInfo().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 882 of file CPlusPlusLanguage.cpp.
References lldb_private::Language::MethodName::GetArguments(), lldb_private::Mangled::GetDemangledName(), lldb_private::SymbolFile::GetMangledNamesForFunction(), lldb_private::Language::MethodName::GetQualifiers(), lldb_private::Language::MethodName::GetScopeQualifiedName(), lldb_private::ConstString::GetStringRef(), lldb_private::Language::MethodName::IsValid(), and lldb_private::SymbolContext::module_sp.
|
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 808 of file CPlusPlusLanguage.cpp.
References lldb_private::ConstString::GetCString(), lldb_private::GetLog(), lldb_private::ConstString::GetStringRef(), lldb_private::Language, LLDB_LOG_ERROR, SubstituteStructorAliases_ItaniumMangle(), and SubstituteType_ItaniumMangle().
|
static |
Definition at line 484 of file CPlusPlusLanguage.cpp.
References lldb_private::DemangledNameInfo::BasenameRange, and lldb_private::DemangledNameInfo::hasBasename().
Referenced by GetDemangledBasename(), and HandleFrameFormatVariable().
|
static |
Definition at line 621 of file CPlusPlusLanguage.cpp.
References lldb_private::DemangledNameInfo::ArgumentsRange, and lldb_private::DemangledNameInfo::hasArguments().
Referenced by PrintDemangledArgumentList().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 292 of file CPlusPlusLanguage.cpp.
References lldb_private::Language::MethodName::GetBasename(), lldb_private::Language::MethodName::GetContext(), lldb_private::ConstString::GetCString(), lldb_private::Mangled::GetDemangledName(), lldb_private::Mangled::GetMangledName(), and lldb_private::ConstString::GetStringRef().
|
static |
Definition at line 534 of file CPlusPlusLanguage.cpp.
References lldb_private::DemangledNameInfo::hasQualifiers(), and lldb_private::DemangledNameInfo::QualifiersRange.
Referenced by GetDemangledFunctionQualifiers(), and HandleFrameFormatVariable().
|
static |
Definition at line 600 of file CPlusPlusLanguage.cpp.
References lldb_private::DemangledNameInfo::hasSuffix(), and lldb_private::DemangledNameInfo::SuffixRange.
Referenced by GetDemangledFunctionSuffix(), and HandleFrameFormatVariable().
|
static |
Definition at line 513 of file CPlusPlusLanguage.cpp.
References lldb_private::DemangledNameInfo::ScopeRange.
Referenced by GetDemangledReturnTypeLHS(), and HandleFrameFormatVariable().
|
static |
Definition at line 557 of file CPlusPlusLanguage.cpp.
References lldb_private::DemangledNameInfo::ArgumentsRange, and lldb_private::DemangledNameInfo::QualifiersRange.
Referenced by GetDemangledReturnTypeRHS(), and HandleFrameFormatVariable().
|
static |
Definition at line 579 of file CPlusPlusLanguage.cpp.
References lldb_private::DemangledNameInfo::hasScope(), and lldb_private::DemangledNameInfo::ScopeRange.
Referenced by GetDemangledScope(), and HandleFrameFormatVariable().
|
static |
Definition at line 491 of file CPlusPlusLanguage.cpp.
References lldb_private::DemangledNameInfo::hasTemplateArguments(), and lldb_private::DemangledNameInfo::TemplateArgumentsRange.
Referenced by GetDemangledTemplateArguments(), and HandleFrameFormatVariable().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 2428 of file CPlusPlusLanguage.cpp.
References lldb_private::DataVisualization::Categories::GetCategory(), GetPluginName(), LoadCommonStlFormatters(), LoadLibCxxFormatters(), LoadLibStdcppFormatters(), LoadMsvcStlFormatters(), and LoadSystemFormatters().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 2624 of file CPlusPlusLanguage.cpp.
References lldb_private::ConstString::AsCString(), lldb_private::Language::eName, lldb_private::Language::eNameWithArgs, lldb_private::Language::eNameWithNoArgs, lldb_private::SymbolContext::function, lldb_private::Symbol::GetName(), PrintFunctionNameWithArgs(), lldb_private::Stream::PutCString(), and lldb_private::SymbolContext::symbol.
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 2962 of file CPlusPlusLanguage.cpp.
References GetGlobalPluginProperties().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 102 of file CPlusPlusLanguage.cpp.
References ExtractContextAndIdentifier(), lldb_private::Language::MethodName::GetBasename(), lldb_private::ConstString::GetCString(), lldb_private::Language::MethodName::GetQualifiers(), lldb_private::ConstString::GetStringRef(), and lldb_private::Mangled::IsMangledName().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 2451 of file CPlusPlusLanguage.cpp.
References lldb_private::formatters::BlockPointerSummaryProvider(), lldb_private::formatters::CXXFunctionPointerSummaryProvider(), lldb::eValueTypeVTableEntry, lldb_private::FormatManager::GetCategory(), lldb_private::ValueObject::GetCompilerType(), lldb_private::ValueObject::GetValueType(), lldb_private::CompilerType::IsBlockPointerType(), lldb_private::CompilerType::IsFunctionPointerType(), lldb_private::CompilerType::IsVectorType(), and lldb_private::formatters::VectorTypeSummaryProvider().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 2517 of file CPlusPlusLanguage.cpp.
References lldb_private::formatters::BlockPointerSyntheticFrontEndCreator(), lldb_private::FormatManager::GetCategory(), lldb_private::ValueObject::GetCompilerType(), lldb_private::CompilerType::IsBlockPointerType(), lldb_private::CompilerType::IsVectorType(), and lldb_private::formatters::VectorTypeSyntheticFrontEndCreator().
|
inlineoverridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 239 of file CPlusPlusLanguage.h.
|
inlineoverridevirtual |
Implements lldb_private::Language.
Definition at line 61 of file CPlusPlusLanguage.h.
References lldb::eLanguageTypeC_plus_plus.
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 94 of file CPlusPlusLanguage.cpp.
|
inlineoverridevirtual |
Returns the summary string for ValueObjects for which IsNilReference() is true.
Reimplemented from lldb_private::Language.
Definition at line 77 of file CPlusPlusLanguage.h.
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 246 of file CPlusPlusLanguage.h.
References GetPluginNameStatic().
Referenced by GetFormatters().
|
inlinestatic |
Definition at line 88 of file CPlusPlusLanguage.h.
Referenced by GetPluginName(), and Initialize().
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 2411 of file CPlusPlusLanguage.cpp.
References lldb_private::CompilerType::GetMinimumLanguage(), lldb_private::CompilerType::GetTypedefedType(), lldb_private::CompilerType::IsTypedefType(), lldb_private::Language::LanguageIsC(), and lldb_private::Language::LanguageIsCPlusPlus().
|
inlineoverridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 65 of file CPlusPlusLanguage.h.
|
overridevirtual |
Returns text to append to LLDB's version string, such as the revisions of compilers embedded in this plugin.
Reimplemented from lldb_private::Language.
Definition at line 2966 of file CPlusPlusLanguage.cpp.
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 2651 of file CPlusPlusLanguage.cpp.
References lldb_private::VariableList::AppendVariablesWithScope(), lldb::eValueTypeVariableArgument, lldb_private::SymbolContext::function, lldb_private::FormatEntity::Entry::FunctionBasename, lldb_private::FormatEntity::Entry::FunctionFormattedArguments, lldb_private::FormatEntity::Entry::FunctionQualifiers, lldb_private::FormatEntity::Entry::FunctionReturnLeft, lldb_private::FormatEntity::Entry::FunctionReturnRight, lldb_private::FormatEntity::Entry::FunctionScope, lldb_private::FormatEntity::Entry::FunctionSuffix, lldb_private::FormatEntity::Entry::FunctionTemplateArguments, lldb_private::ExecutionContext::GetBestExecutionContextScope(), GetDemangledBasename(), GetDemangledFunctionQualifiers(), GetDemangledFunctionSuffix(), GetDemangledReturnTypeLHS(), GetDemangledReturnTypeRHS(), GetDemangledScope(), GetDemangledTemplateArguments(), GetFunctionVariableList(), lldb_private::GetLog(), lldb_private::Language, LLDB_LOG_ERROR, lldb_private::FormatEntity::PrettyPrintFunctionArguments(), PrintDemangledArgumentList(), and lldb_private::SymbolContext::symbol.
|
static |
Definition at line 77 of file CPlusPlusLanguage.cpp.
References CreateInstance(), DebuggerInitialize(), lldb::eLanguageTypeC_plus_plus, g_itanium_scheme, g_msvc_scheme, GetPluginNameStatic(), lldb_private::Mangled::RegisterManglingScheme(), and lldb_private::PluginManager::RegisterPlugin().
|
static |
|
overridevirtual |
Reimplemented from lldb_private::Language.
Definition at line 2563 of file CPlusPlusLanguage.cpp.
References lldb_private::ValueObject::GetObjectRuntimeLanguage(), lldb_private::ValueObject::GetValueAsUnsigned(), lldb_private::ValueObject::IsPointerType(), and lldb_private::Language::LanguageIsCPlusPlus().
|
overridevirtual |
Implements lldb_private::Language.
Definition at line 2572 of file CPlusPlusLanguage.cpp.
|
static |
Substitutes Itanium structor encoding substrings given by subst_from in mangled_name with subst_to.
This function will only replace Itanium structor encodings (i.e., <ctor-dtor-name> productions in the Itanium ABI mangling grammar). However, no verifiction is done on whether subst_from or subst_to is a valid structor encoding.
| [in] | mangled_name | Mangled name to perform the substitutions in. This function only supports Itanium ABI mangling. |
| [in] | subst_from | The substring to substitute. |
| [in] | subst_to | The substring to insert. |
ConstString (even if the string already contained the substitutions). If an error occurred, this function returns the error. Definition at line 2920 of file CPlusPlusLanguage.cpp.
Referenced by lldb_private::plugin::dwarf::SymbolFileDWARF::ResolveFunctionCallLabel().
|
static |
Tries replacing Itanium structor encoding substrings in mangled_name with potential aliases.j.
This function will only replace Itanium structor encodings (i.e., <ctor-dtor-name> productions in the Itanium ABI mangling grammar).
E.g., on some platforms, the C1/D1 variants are aliased to the C2/D2 variants. This function will try to replace occurrences of C1/D1 with C2/D2.
| [in] | mangled_name | Mangled name to perform the substitutions in. This function only supports Itanium ABI mangling. |
ConstString (even if the string already contained the substitutions). If an error occurred, this function returns the error. Definition at line 2927 of file CPlusPlusLanguage.cpp.
Referenced by lldb_private::plugin::dwarf::SymbolFileDWARF::FindFunctionDefinition(), and GenerateAlternateFunctionManglings().
|
static |
Substitutes Itanium type encoding substrings given by subst_from in mangled_name with subst_to.
This function will only replace Itanium type encodings (i.e., <type> productions in the Itanium ABI mangling grammar). However, no verifiction is done on whether subst_from or subst_to is a valid type encoding.
| [in] | mangled_name | Mangled name to perform the substitutions in. This function only supports Itanium ABI mangling. |
| [in] | subst_from | The substring to substitute. |
| [in] | subst_to | The substring to insert. |
ConstString (even if the string already contained the substitutions). If an error occurred, this function returns the error. Definition at line 2914 of file CPlusPlusLanguage.cpp.
Referenced by GenerateAlternateFunctionManglings().
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 131 of file CPlusPlusLanguage.cpp.
References lldb_private::Mangled::GetMangledName(), lldb_private::Mangled::GetManglingScheme(), lldb_private::ConstString::GetStringRef(), and IsCPlusPlusManglingScheme().
|
static |
Definition at line 87 of file CPlusPlusLanguage.cpp.
References CreateInstance(), g_itanium_scheme, g_msvc_scheme, lldb_private::Mangled::UnregisterManglingScheme(), and lldb_private::PluginManager::UnregisterPlugin().