LLDB mainline
Functions
CPlusPlusLanguage.cpp File Reference
#include "CPlusPlusLanguage.h"
#include <cctype>
#include <cstring>
#include <functional>
#include <memory>
#include <mutex>
#include <set>
#include "llvm/ADT/StringRef.h"
#include "llvm/Demangle/ItaniumDemangle.h"
#include "lldb/Core/Mangled.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Core/UniqueCStringMap.h"
#include "lldb/Core/ValueObjectVariable.h"
#include "lldb/DataFormatters/CXXFunctionPointer.h"
#include "lldb/DataFormatters/DataVisualization.h"
#include "lldb/DataFormatters/FormattersHelpers.h"
#include "lldb/DataFormatters/VectorType.h"
#include "lldb/Symbol/SymbolFile.h"
#include "lldb/Symbol/VariableList.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/RegularExpression.h"
#include "BlockPointer.h"
#include "CPlusPlusNameParser.h"
#include "Coroutines.h"
#include "CxxStringTypes.h"
#include "Generic.h"
#include "LibCxx.h"
#include "LibCxxAtomic.h"
#include "LibCxxVariant.h"
#include "LibStdcpp.h"
#include "MSVCUndecoratedNameParser.h"
#include "lldb/lldb-enumerations.h"

Go to the source code of this file.

Functions

static bool ReverseFindMatchingChars (const llvm::StringRef &s, const llvm::StringRef &left_right_chars, size_t &left_pos, size_t &right_pos, size_t pos=llvm::StringRef::npos)
 
static bool IsTrivialBasename (const llvm::StringRef &basename)
 
static bool PrettyPrintFunctionNameWithArgs (Stream &out_stream, char const *full_name, ExecutionContextScope *exe_scope, VariableList const &args)
 Writes out the function name in 'full_name' to 'out_stream' but replaces each argument type with the variable name and the corresponding pretty-printed value.
 
static void LoadLibCxxFormatters (lldb::TypeCategoryImplSP cpp_category_sp)
 
static void LoadLibStdcppFormatters (lldb::TypeCategoryImplSP cpp_category_sp)
 
static void LoadSystemFormatters (lldb::TypeCategoryImplSP cpp_category_sp)
 

Function Documentation

◆ IsTrivialBasename()

static bool IsTrivialBasename ( const llvm::StringRef &  basename)
static

◆ LoadLibCxxFormatters()

static void LoadLibCxxFormatters ( lldb::TypeCategoryImplSP  cpp_category_sp)
static

Definition at line 635 of file CPlusPlusLanguage.cpp.

References lldb_private::formatters::AddCXXSummary(), lldb_private::formatters::AddCXXSynthetic(), lldb::eFormatterMatchRegex, lldb_private::formatters::GenericOptionalSummaryProvider(), lldb_private::formatters::LibCxxAtomicSummaryProvider(), lldb_private::formatters::LibcxxAtomicSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxBitsetSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxChronoLocalDaysSummaryProvider(), lldb_private::formatters::LibcxxChronoLocalSecondsSummaryProvider(), lldb_private::formatters::LibcxxChronoMonthSummaryProvider(), lldb_private::formatters::LibcxxChronoSysDaysSummaryProvider(), lldb_private::formatters::LibcxxChronoSysSecondsSummaryProvider(), lldb_private::formatters::LibcxxChronoWeekdaySummaryProvider(), lldb_private::formatters::LibcxxChronoYearMonthDaySummaryProvider(), lldb_private::formatters::LibcxxContainerSummaryProvider(), lldb_private::formatters::LibcxxFunctionSummaryProvider(), lldb_private::formatters::LibcxxInitializerListSyntheticFrontEndCreator(), lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxOptionalSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxQueueFrontEndCreator(), lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxSmartPointerSummaryProvider(), lldb_private::formatters::LibcxxStdForwardListSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxStdListSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEndCreator(), lldb_private::formatters::LibcxxStdRangesRefViewSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxStdSliceArraySummaryProvider(), lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEndCreator(), lldb_private::formatters::LibcxxStdSpanSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxStdValarraySyntheticFrontEndCreator(), lldb_private::formatters::LibcxxStdVectorSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxStringSummaryProviderASCII(), lldb_private::formatters::LibcxxStringSummaryProviderUTF16(), lldb_private::formatters::LibcxxStringSummaryProviderUTF32(), lldb_private::formatters::LibcxxStringViewSummaryProviderASCII(), lldb_private::formatters::LibcxxStringViewSummaryProviderUTF16(), lldb_private::formatters::LibcxxStringViewSummaryProviderUTF32(), lldb_private::formatters::LibcxxTupleFrontEndCreator(), lldb_private::formatters::LibcxxUniquePointerSummaryProvider(), lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEndCreator(), lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxVariantFrontEndCreator(), lldb_private::formatters::LibcxxVariantSummaryProvider(), lldb_private::formatters::LibCxxVectorIteratorSyntheticFrontEndCreator(), lldb_private::formatters::LibcxxWStringSummaryProvider(), lldb_private::formatters::LibcxxWStringViewSummaryProvider(), lldb_private::TypeSummaryImpl::Flags::SetCascades(), lldb_private::SyntheticChildren::Flags::SetCascades(), lldb_private::TypeSummaryImpl::Flags::SetDontShowChildren(), lldb_private::TypeSummaryImpl::Flags::SetDontShowValue(), lldb_private::SyntheticChildren::Flags::SetFrontEndWantsDereference(), lldb_private::TypeSummaryImpl::Flags::SetHideItemNames(), lldb_private::TypeSummaryImpl::Flags::SetShowMembersOneLiner(), lldb_private::TypeSummaryImpl::Flags::SetSkipPointers(), lldb_private::SyntheticChildren::Flags::SetSkipPointers(), lldb_private::TypeSummaryImpl::Flags::SetSkipReferences(), lldb_private::SyntheticChildren::Flags::SetSkipReferences(), lldb_private::formatters::StdlibCoroutineHandleSummaryProvider(), and lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEndCreator().

Referenced by lldb_private::CPlusPlusLanguage::GetFormatters().

◆ LoadLibStdcppFormatters()

static void LoadLibStdcppFormatters ( lldb::TypeCategoryImplSP  cpp_category_sp)
static

Definition at line 1198 of file CPlusPlusLanguage.cpp.

References lldb_private::formatters::AddCXXSummary(), lldb_private::formatters::AddCXXSynthetic(), lldb::eFormatterMatchExact, lldb::eFormatterMatchRegex, lldb_private::formatters::GenericOptionalSummaryProvider(), lldb_private::formatters::LibStdcppBitsetSyntheticFrontEndCreator(), lldb_private::formatters::LibstdcppMapIteratorSyntheticFrontEndCreator(), lldb_private::formatters::LibStdcppOptionalSyntheticFrontEndCreator(), lldb_private::formatters::LibStdcppSharedPtrSyntheticFrontEndCreator(), lldb_private::formatters::LibStdcppSmartPointerSummaryProvider(), lldb_private::formatters::LibStdcppStringSummaryProvider(), lldb_private::formatters::LibStdcppTupleSyntheticFrontEndCreator(), lldb_private::formatters::LibStdcppUniquePointerSummaryProvider(), lldb_private::formatters::LibStdcppUniquePtrSyntheticFrontEndCreator(), lldb_private::formatters::LibStdcppVectorIteratorSyntheticFrontEndCreator(), lldb_private::formatters::LibStdcppWStringSummaryProvider(), lldb_private::TypeSummaryImpl::Flags::SetCascades(), lldb_private::SyntheticChildren::Flags::SetCascades(), lldb_private::TypeSummaryImpl::Flags::SetDontShowChildren(), lldb_private::TypeSummaryImpl::Flags::SetDontShowValue(), lldb_private::SyntheticChildren::Flags::SetFrontEndWantsDereference(), lldb_private::TypeSummaryImpl::Flags::SetHideItemNames(), lldb_private::TypeSummaryImpl::Flags::SetShowMembersOneLiner(), lldb_private::TypeSummaryImpl::Flags::SetSkipPointers(), lldb_private::SyntheticChildren::Flags::SetSkipPointers(), lldb_private::TypeSummaryImpl::Flags::SetSkipReferences(), lldb_private::SyntheticChildren::Flags::SetSkipReferences(), lldb_private::formatters::StdlibCoroutineHandleSummaryProvider(), and lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEndCreator().

Referenced by lldb_private::CPlusPlusLanguage::GetFormatters().

◆ LoadSystemFormatters()

static void LoadSystemFormatters ( lldb::TypeCategoryImplSP  cpp_category_sp)
static

◆ PrettyPrintFunctionNameWithArgs()

static bool PrettyPrintFunctionNameWithArgs ( Stream out_stream,
char const *  full_name,
ExecutionContextScope exe_scope,
VariableList const &  args 
)
static

Writes out the function name in 'full_name' to 'out_stream' but replaces each argument type with the variable name and the corresponding pretty-printed value.

Definition at line 180 of file CPlusPlusLanguage.cpp.

References lldb_private::FormatEntity::PrettyPrintFunctionArguments(), lldb_private::Stream::PutChar(), and lldb_private::Stream::PutCString().

◆ ReverseFindMatchingChars()

static bool ReverseFindMatchingChars ( const llvm::StringRef &  s,
const llvm::StringRef &  left_right_chars,
size_t &  left_pos,
size_t &  right_pos,
size_t  pos = llvm::StringRef::npos 
)
static