lldb::SBValueList SBBlock::GetVariables (lldb::SBFrame& frame, bool arguments, bool locals, bool statics, lldb::DynamicValueType use_dynamic) { Block *block = GetPtr(); SBValueList value_list; if (block) { StackFrameSP frame_sp(frame.GetFrameSP()); VariableListSP variable_list_sp (block->GetBlockVariableList (true)); if (variable_list_sp) { const size_t num_variables = variable_list_sp->GetSize(); if (num_variables) { for (size_t i = 0; i < num_variables; ++i) { VariableSP variable_sp (variable_list_sp->GetVariableAtIndex(i)); if (variable_sp) { bool add_variable = false; switch (variable_sp->GetScope()) { case eValueTypeVariableGlobal: case eValueTypeVariableStatic: add_variable = statics; break; case eValueTypeVariableArgument: add_variable = arguments; break; case eValueTypeVariableLocal: add_variable = locals; break; default: break; } if (add_variable) { if (frame_sp) { lldb::ValueObjectSP valobj_sp(frame_sp->GetValueObjectForFrameVariable (variable_sp,eNoDynamicValues)); SBValue value_sb; value_sb.SetSP(valobj_sp, use_dynamic); value_list.Append (value_sb); } } } } } } } return value_list; }
lldb::SBValueList SBBlock::GetVariables (lldb::SBTarget& target, bool arguments, bool locals, bool statics) { Block *block = GetPtr(); SBValueList value_list; if (block) { TargetSP target_sp(target.GetSP()); VariableListSP variable_list_sp (block->GetBlockVariableList (true)); if (variable_list_sp) { const size_t num_variables = variable_list_sp->GetSize(); if (num_variables) { for (size_t i = 0; i < num_variables; ++i) { VariableSP variable_sp (variable_list_sp->GetVariableAtIndex(i)); if (variable_sp) { bool add_variable = false; switch (variable_sp->GetScope()) { case eValueTypeVariableGlobal: case eValueTypeVariableStatic: case eValueTypeVariableThreadLocal: add_variable = statics; break; case eValueTypeVariableArgument: add_variable = arguments; break; case eValueTypeVariableLocal: add_variable = locals; break; default: break; } if (add_variable) { if (target_sp) value_list.Append (ValueObjectVariable::Create (target_sp.get(), variable_sp)); } } } } } } return value_list; }