ValueObjects themselves use DumpValueObjectOptions as the currency for the same purpose
The code to convert between these two units was replicated (to varying degrees of correctness) in several spots in the code
This checkin provides one and only one (and hopefully correct :-) entry point for this conversion
llvm-svn: 178044
// C++ Includes
// Other libraries and framework includes
// Project includes
+#include "lldb/Core/ValueObject.h"
#include "lldb/Interpreter/Options.h"
namespace lldb_private {
be_raw == true ||
ignore_cap == true;
}
+
+ ValueObject::DumpValueObjectOptions
+ GetAsDumpOptions (bool objc_is_compact = false,
+ lldb::Format format = lldb::eFormatDefault,
+ lldb::TypeSummaryImplSP summary_sp = lldb::TypeSummaryImplSP());
bool show_types;
uint32_t no_summary_depth;
if (format != eFormatDefault)
result_valobj_sp->SetFormat (format);
- ValueObject::DumpValueObjectOptions options;
- options.SetMaximumPointerDepth(m_varobj_options.ptr_depth);
- if (m_varobj_options.use_objc)
- options.SetShowSummary(false);
- else
- options.SetOmitSummaryDepth(m_varobj_options.no_summary_depth);
- options.SetMaximumDepth(m_varobj_options.max_depth)
- .SetShowTypes(m_varobj_options.show_types)
- .SetShowLocation(m_varobj_options.show_location)
- .SetUseObjectiveC(m_varobj_options.use_objc)
- .SetUseDynamicType(m_varobj_options.use_dynamic)
- .SetUseSyntheticValue(m_varobj_options.use_synth)
- .SetFlatOutput(m_varobj_options.flat_output)
- .SetIgnoreCap(m_varobj_options.ignore_cap)
- .SetFormat(format)
- .SetHideRootType(m_varobj_options.use_objc)
- .SetHideName(m_varobj_options.use_objc)
- .SetHideValue(m_varobj_options.use_objc);
-
- if (m_varobj_options.be_raw)
- options.SetRawDisplay(true);
+ ValueObject::DumpValueObjectOptions options(m_varobj_options.GetAsDumpOptions(true,format));
ValueObject::DumpValueObject (*(output_stream),
result_valobj_sp.get(), // Variable object to dump
else if (!m_option_variable.summary_string.IsCurrentValueEmpty())
summary_format_sp.reset(new StringSummaryFormat(TypeSummaryImpl::Flags(),m_option_variable.summary_string.GetCurrentValue()));
- ValueObject::DumpValueObjectOptions options;
-
- options.SetMaximumPointerDepth(m_varobj_options.ptr_depth)
- .SetMaximumDepth(m_varobj_options.max_depth)
- .SetShowTypes(m_varobj_options.show_types)
- .SetShowLocation(m_varobj_options.show_location)
- .SetUseObjectiveC(m_varobj_options.use_objc)
- .SetUseDynamicType(m_varobj_options.use_dynamic)
- .SetUseSyntheticValue(m_varobj_options.use_synth)
- .SetFlatOutput(m_varobj_options.flat_output)
- .SetOmitSummaryDepth(m_varobj_options.no_summary_depth)
- .SetIgnoreCap(m_varobj_options.ignore_cap)
- .SetSummary(summary_format_sp);
-
- if (m_varobj_options.be_raw)
- options.SetRawDisplay(true);
+ ValueObject::DumpValueObjectOptions options(m_varobj_options.GetAsDumpOptions(false,eFormatDefault,summary_format_sp));
if (variable_list)
{
bool scope_already_checked = true;
- ValueObject::DumpValueObjectOptions options;
- options.SetMaximumPointerDepth(m_varobj_options.ptr_depth)
- .SetMaximumDepth(m_varobj_options.max_depth)
- .SetShowLocation(m_varobj_options.show_location)
- .SetShowTypes(m_varobj_options.show_types)
- .SetUseObjectiveC(m_varobj_options.use_objc)
- .SetScopeChecked(scope_already_checked)
- .SetFlatOutput(m_varobj_options.flat_output)
- .SetUseSyntheticValue(m_varobj_options.be_raw ? false : m_varobj_options.use_synth)
- .SetOmitSummaryDepth(m_varobj_options.be_raw ? UINT32_MAX : m_varobj_options.no_summary_depth)
- .SetIgnoreCap(m_varobj_options.be_raw ? true : m_varobj_options.ignore_cap)
- .SetFormat(format)
- .SetSummary();
+ ValueObject::DumpValueObjectOptions options(m_varobj_options.GetAsDumpOptions(false,format));
+
ValueObject::DumpValueObject (*output_stream,
valobj_sp.get(),
options);
void
DumpValueObject (Stream &s, VariableSP &var_sp, ValueObjectSP &valobj_sp, const char *root_name)
{
- ValueObject::DumpValueObjectOptions options;
+ ValueObject::DumpValueObjectOptions options(m_varobj_options.GetAsDumpOptions());
- options.SetMaximumPointerDepth(m_varobj_options.ptr_depth)
- .SetMaximumDepth(m_varobj_options.max_depth)
- .SetShowTypes(m_varobj_options.show_types)
- .SetShowLocation(m_varobj_options.show_location)
- .SetUseObjectiveC(m_varobj_options.use_objc)
- .SetUseDynamicType(m_varobj_options.use_dynamic)
- .SetUseSyntheticValue(m_varobj_options.use_synth)
- .SetFlatOutput(m_varobj_options.flat_output)
- .SetOmitSummaryDepth(m_varobj_options.no_summary_depth)
- .SetIgnoreCap(m_varobj_options.ignore_cap);
-
switch (var_sp->GetScope())
{
case eValueTypeVariableGlobal:
ValueObjectSP return_valobj_sp = StopInfo::GetReturnValueObject (stop_info_sp);
if (return_valobj_sp)
{
- ValueObject::DumpValueObjectOptions dump_options;
- ValueObject::DumpValueObject (s, return_valobj_sp.get(), dump_options);
+ ValueObject::DumpValueObject (s, return_valobj_sp.get());
var_success = true;
}
}
use_dynamic = lldb::eNoDynamicValues;
}
}
+
+ValueObject::DumpValueObjectOptions
+OptionGroupValueObjectDisplay::GetAsDumpOptions (bool objc_is_compact,
+ lldb::Format format,
+ lldb::TypeSummaryImplSP summary_sp)
+{
+ ValueObject::DumpValueObjectOptions options;
+ options.SetMaximumPointerDepth(ptr_depth);
+ if (use_objc)
+ options.SetShowSummary(false);
+ else
+ options.SetOmitSummaryDepth(no_summary_depth);
+ options.SetMaximumDepth(max_depth)
+ .SetShowTypes(show_types)
+ .SetShowLocation(show_location)
+ .SetUseObjectiveC(use_objc)
+ .SetUseDynamicType(use_dynamic)
+ .SetUseSyntheticValue(use_synth)
+ .SetFlatOutput(flat_output)
+ .SetIgnoreCap(ignore_cap)
+ .SetFormat(format)
+ .SetSummary(summary_sp);
+
+ if (objc_is_compact)
+ options.SetHideRootType(use_objc)
+ .SetHideName(use_objc)
+ .SetHideValue(use_objc);
+
+ if (be_raw)
+ options.SetRawDisplay(true);
+
+ return options;
+}