LLDB mainline
|
#include "LibCxx.h"
#include "lldb/Core/Debugger.h"
#include "lldb/Core/FormatEntity.h"
#include "lldb/Core/ValueObject.h"
#include "lldb/Core/ValueObjectConstResult.h"
#include "lldb/DataFormatters/FormattersHelpers.h"
#include "lldb/DataFormatters/StringPrinter.h"
#include "lldb/DataFormatters/TypeSummary.h"
#include "lldb/DataFormatters/VectorIterator.h"
#include "lldb/Target/SectionLoadList.h"
#include "lldb/Target/Target.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/Utility/DataBufferHeap.h"
#include "lldb/Utility/Endian.h"
#include "lldb/Utility/Status.h"
#include "lldb/Utility/Stream.h"
#include "Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h"
#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
#include "lldb/lldb-enumerations.h"
#include <optional>
#include <tuple>
Go to the source code of this file.
Functions | |
static std::optional< std::pair< uint64_t, ValueObjectSP > > | ExtractLibcxxStringInfo (ValueObject &valobj) |
Determine the size in bytes of valobj (a libc++ std::string object) and extract its data payload. | |
static bool | LibcxxWStringSummaryProvider (ValueObject &valobj, Stream &stream, const TypeSummaryOptions &summary_options, ValueObjectSP location_sp, size_t size) |
template<StringPrinter::StringElementType element_type> | |
static bool | LibcxxStringSummaryProvider (ValueObject &valobj, Stream &stream, const TypeSummaryOptions &summary_options, std::string prefix_token, ValueObjectSP location_sp, uint64_t size) |
template<StringPrinter::StringElementType element_type> | |
static bool | LibcxxStringSummaryProvider (ValueObject &valobj, Stream &stream, const TypeSummaryOptions &summary_options, std::string prefix_token) |
template<StringPrinter::StringElementType element_type> | |
static bool | formatStringImpl (ValueObject &valobj, Stream &stream, const TypeSummaryOptions &summary_options, std::string prefix_token) |
static std::tuple< bool, ValueObjectSP, size_t > | LibcxxExtractStringViewData (ValueObject &valobj) |
template<StringPrinter::StringElementType element_type> | |
static bool | formatStringViewImpl (ValueObject &valobj, Stream &stream, const TypeSummaryOptions &summary_options, std::string prefix_token) |
static bool | LibcxxChronoTimePointSecondsSummaryProvider (ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options, const char *fmt) |
static bool | LibcxxChronoTimepointDaysSummaryProvider (ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options, const char *fmt) |
|
static |
Determine the size in bytes of valobj
(a libc++ std::string object) and extract its data payload.
Return the size + payload pair.
Definition at line 414 of file LibCxx.cpp.
References lldb_private::ExecutionContext::GetBestExecutionContextScope(), lldb_private::ValueObject::GetChildMemberWithName(), l, and LLDB_INVALID_OFFSET.
Referenced by LibcxxStringSummaryProvider(), and lldb_private::formatters::LibcxxWStringSummaryProvider().
|
static |
Definition at line 641 of file LibCxx.cpp.
References lldb_private::StreamString::GetData().
|
static |
Definition at line 696 of file LibCxx.cpp.
References LibcxxExtractStringViewData().
|
static |
Definition at line 810 of file LibCxx.cpp.
References lldb_private::ValueObject::GetChildMemberWithName(), and lldb_private::Stream::Printf().
Referenced by lldb_private::formatters::LibcxxChronoLocalDaysSummaryProvider(), and lldb_private::formatters::LibcxxChronoSysDaysSummaryProvider().
|
static |
Definition at line 754 of file LibCxx.cpp.
References lldb_private::ValueObject::GetChildMemberWithName(), and lldb_private::Stream::Printf().
Referenced by lldb_private::formatters::LibcxxChronoLocalSecondsSummaryProvider(), and lldb_private::formatters::LibcxxChronoSysSecondsSummaryProvider().
|
static |
Definition at line 676 of file LibCxx.cpp.
References lldb_private::formatters::GetChildMemberWithName().
Referenced by formatStringViewImpl(), and lldb_private::formatters::LibcxxWStringViewSummaryProvider().
|
static |
Definition at line 627 of file LibCxx.cpp.
References ExtractLibcxxStringInfo().
|
static |
Definition at line 583 of file LibCxx.cpp.
References lldb_private::TypeSummaryOptions::GetCapping(), lldb_private::ValueObject::GetTargetSP(), lldb_private::Stream::Printf(), lldb_private::formatters::StringPrinter::DumpToStreamOptions::SetBinaryZeroIsTerminator(), lldb_private::formatters::StringPrinter::ReadBufferAndDumpToStreamOptions::SetData(), lldb_private::formatters::StringPrinter::ReadBufferAndDumpToStreamOptions::SetIsTruncated(), lldb_private::formatters::StringPrinter::DumpToStreamOptions::SetPrefixToken(), lldb_private::formatters::StringPrinter::DumpToStreamOptions::SetQuote(), lldb_private::formatters::StringPrinter::DumpToStreamOptions::SetSourceSize(), and lldb_private::formatters::StringPrinter::DumpToStreamOptions::SetStream().
|
static |
Definition at line 504 of file LibCxx.cpp.
References lldb::eBasicTypeWChar, lldb_private::TypeSummaryOptions::GetCapping(), lldb_private::ScratchTypeSystemClang::GetForTarget(), lldb_private::ValueObject::GetTargetSP(), lldb_private::Stream::Printf(), lldb_private::formatters::StringPrinter::ReadBufferAndDumpToStream(), lldb_private::formatters::StringPrinter::DumpToStreamOptions::SetBinaryZeroIsTerminator(), lldb_private::formatters::StringPrinter::ReadBufferAndDumpToStreamOptions::SetData(), lldb_private::formatters::StringPrinter::ReadBufferAndDumpToStreamOptions::SetIsTruncated(), lldb_private::formatters::StringPrinter::DumpToStreamOptions::SetPrefixToken(), lldb_private::formatters::StringPrinter::DumpToStreamOptions::SetQuote(), lldb_private::formatters::StringPrinter::DumpToStreamOptions::SetSourceSize(), and lldb_private::formatters::StringPrinter::DumpToStreamOptions::SetStream().