forked from OSchip/llvm-project
Our commands that end up displaying a ValueObject as part of their workflow use OptionGroupValueObjectDisplay as their currency for deciding the final representation
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
This commit is contained in:
parent
cfed3cf33c
commit
9fb5ab558b
|
@ -14,6 +14,7 @@
|
|||
// C++ Includes
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/ValueObject.h"
|
||||
#include "lldb/Interpreter/Options.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
@ -60,6 +61,11 @@ public:
|
|||
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;
|
||||
|
|
|
@ -386,27 +386,7 @@ CommandObjectExpression::EvaluateExpression
|
|||
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
|
||||
|
|
|
@ -374,22 +374,7 @@ protected:
|
|||
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)
|
||||
{
|
||||
|
|
|
@ -807,19 +807,8 @@ protected:
|
|||
|
||||
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);
|
||||
|
|
|
@ -637,19 +637,8 @@ public:
|
|||
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:
|
||||
|
|
|
@ -1989,8 +1989,7 @@ Debugger::FormatPrompt
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -146,3 +146,36 @@ OptionGroupValueObjectDisplay::OptionParsingStarting (CommandInterpreter &interp
|
|||
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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue