================
@@ -473,18 +473,57 @@ lldb::SBValue SBValue::CreateValueFromExpression(const
char *name,
SBExpressionOptions &options)
{
LLDB_INSTRUMENT_VA(this, name, expression, options);
- lldb::SBValue sb_value;
+ lldb::ValueObjectSP new_value_sp;
+ StackFrameSP frame_sp(GetFrame().GetFrameSP());
+ TargetSP target_sp(GetTarget().GetSP());
+ // If enabled, attempt to use DIL to evaluate the expression.
+ bool DIL_success = false;
+ if (frame_sp && target_sp) {
+ bool use_DIL = target_sp->GetUseDILForCreatingValues();
+ if (use_DIL) {
+ Status error;
+ if (frame_sp) {
+ uint32_t expr_path_options =
+ StackFrame::eExpressionPathOptionCheckPtrVsMember |
+ StackFrame::eExpressionPathOptionsAllowDirectIVarAccess;
+ lldb::VariableSP var_sp;
+ new_value_sp = frame_sp->GetValueForVariableExpressionPath(
+ expression, eNoDynamicValues, expr_path_options, var_sp, error);
----------------
kuilpd wrote:
I suppose it can change, since DIL has an ability to retrieve dynamic values.
I'll add this.
https://github.com/llvm/llvm-project/pull/222192
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits