SBValue SBFrame::FindValue (const char *name, ValueType value_type) { SBValue value; ExecutionContext exe_ctx(m_opaque_sp.get()); StackFrame *frame = exe_ctx.GetFramePtr(); Target *target = exe_ctx.GetTargetPtr(); if (frame && target) { lldb::DynamicValueType use_dynamic = frame->CalculateTarget()->GetPreferDynamicValue(); value = FindValue (name, value_type, use_dynamic); } return value; }
lldb::SBValue SBFrame::GetValueForVariablePath (const char *var_path) { SBValue sb_value; ExecutionContext exe_ctx(m_opaque_sp.get()); StackFrame *frame = exe_ctx.GetFramePtr(); Target *target = exe_ctx.GetTargetPtr(); if (frame && target) { lldb::DynamicValueType use_dynamic = frame->CalculateTarget()->GetPreferDynamicValue(); sb_value = GetValueForVariablePath (var_path, use_dynamic); } return sb_value; }
SBValue SBFrame::EvaluateExpression (const char *expr) { SBValue result; ExecutionContext exe_ctx(m_opaque_sp.get()); StackFrame *frame = exe_ctx.GetFramePtr(); Target *target = exe_ctx.GetTargetPtr(); if (frame && target) { SBExpressionOptions options; lldb::DynamicValueType fetch_dynamic_value = frame->CalculateTarget()->GetPreferDynamicValue(); options.SetFetchDynamicValue (fetch_dynamic_value); options.SetUnwindOnError (true); return EvaluateExpression (expr, options); } return result; }
SBValueList SBFrame::GetVariables (bool arguments, bool locals, bool statics, bool in_scope_only) { SBValueList value_list; ExecutionContext exe_ctx(m_opaque_sp.get()); StackFrame *frame = exe_ctx.GetFramePtr(); Target *target = exe_ctx.GetTargetPtr(); if (frame && target) { lldb::DynamicValueType use_dynamic = frame->CalculateTarget()->GetPreferDynamicValue(); value_list = GetVariables (arguments, locals, statics, in_scope_only, use_dynamic); } return value_list; }