aboutsummaryrefslogtreecommitdiff
path: root/lldb/include/lldb/Expression/Materializer.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/include/lldb/Expression/Materializer.h')
-rw-r--r--lldb/include/lldb/Expression/Materializer.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/lldb/include/lldb/Expression/Materializer.h b/lldb/include/lldb/Expression/Materializer.h
index 25cf22a8b5b0..aae94f86a71e 100644
--- a/lldb/include/lldb/Expression/Materializer.h
+++ b/lldb/include/lldb/Expression/Materializer.h
@@ -78,6 +78,28 @@ public:
AddPersistentVariable(lldb::ExpressionVariableSP &persistent_variable_sp,
PersistentVariableDelegate *delegate, Status &err);
uint32_t AddVariable(lldb::VariableSP &variable_sp, Status &err);
+
+ /// Create entity from supplied ValueObject and count it as a member
+ /// of the materialized struct.
+ ///
+ /// Behaviour is undefined if 'valobj_provider' is empty.
+ ///
+ /// \param[in] name Name of variable to materialize
+ ///
+ /// \param[in] valobj_provider When materializing values multiple
+ /// times, this callback gets used to fetch a fresh
+ /// ValueObject corresponding to the supplied frame.
+ /// This is mainly used for conditional breakpoints
+ /// that re-apply an expression whatever the frame
+ /// happens to be when the breakpoint got hit.
+ ///
+ /// \param[out] err Error status that gets set on error.
+ ///
+ /// \returns Offset in bytes of the member we just added to the
+ /// materialized struct.
+ uint32_t AddValueObject(ConstString name,
+ ValueObjectProviderTy valobj_provider, Status &err);
+
uint32_t AddResultVariable(const CompilerType &type, bool is_lvalue,
bool keep_in_memory,
PersistentVariableDelegate *delegate, Status &err);