14#include "llvm/ADT/APSInt.h"
15#include "llvm/Support/Error.h"
16#include "llvm/Support/ErrorExtras.h"
43 offset +=
m_start->GetValueAsUnsigned(0);
44 const std::string name = llvm::formatv(
"[{0}]", idx);
57 llvm::Expected<uint64_t> size_or_err =
m_element_type.GetByteSize(
nullptr);
71 m_backend.GetChildAtNamePath({
"_M_extent",
"_M_extent_value"})) {
73 }
else if (
const auto arg =
74 m_backend.GetCompilerType().GetIntegralTemplateArgument(1)) {
84 return llvm::createStringErrorV(
"type has no child named '{0}'", name);
88 return llvm::createStringErrorV(
"type has no child named '{0}'", name);
#define LLDB_LOG_ERRORV(log, error,...)
Generic representation of a type in a programming language.
size_t GetNumTemplateArguments(bool expand_pack=false) const
Return the number of template arguments the type has.
A uniqued constant string class.
const char * GetCString() const
Get the string value as a C string.
SyntheticChildrenFrontEnd(ValueObject &backend)
lldb::ValueObjectSP CreateValueObjectFromAddress(llvm::StringRef name, uint64_t address, const ExecutionContext &exe_ctx, CompilerType type, bool do_deref=true)
Log * GetLog(Cat mask)
Retrieve the Log object for the channel associated with the given log enum.
ChildCacheState
Specifies if children need to be re-computed after a call to SyntheticChildrenFrontEnd::Update.
@ eRefetch
Children need to be recomputed dynamically.
@ eReuse
Children did not change and don't need to be recomputed; re-use what we computed the last time we cal...
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP