diff --git a/lldb/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h b/lldb/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h index c5b33b34c3f17ac2c34d3bfc30d251cc9476a7be..da05e127d5d12e907b9d1a09f25d40c59e5d2a1a 100644 --- a/lldb/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h +++ b/lldb/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h @@ -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; diff --git a/lldb/source/Commands/CommandObjectExpression.cpp b/lldb/source/Commands/CommandObjectExpression.cpp index ccb2f8e61b85ac0fb484211843188845b11156b5..927dc628695deaaeed9646a6a5da7a0471f82c3c 100644 --- a/lldb/source/Commands/CommandObjectExpression.cpp +++ b/lldb/source/Commands/CommandObjectExpression.cpp @@ -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 diff --git a/lldb/source/Commands/CommandObjectFrame.cpp b/lldb/source/Commands/CommandObjectFrame.cpp index aafdd79e0125c5a33016ac4f5e0aae47cc319fc0..a7d412397653665725b52217c858ee520faf352f 100644 --- a/lldb/source/Commands/CommandObjectFrame.cpp +++ b/lldb/source/Commands/CommandObjectFrame.cpp @@ -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) { diff --git a/lldb/source/Commands/CommandObjectMemory.cpp b/lldb/source/Commands/CommandObjectMemory.cpp index 43944cea2c778d972110ca2bc61e0a5ca1791b76..c3c3e44025c18dd06e4250f2717a40c2a03e11d9 100644 --- a/lldb/source/Commands/CommandObjectMemory.cpp +++ b/lldb/source/Commands/CommandObjectMemory.cpp @@ -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); diff --git a/lldb/source/Commands/CommandObjectTarget.cpp b/lldb/source/Commands/CommandObjectTarget.cpp index 3869efb08b998dce4910e593723e550fdba0d83c..14a743a5c16b5103a647aaed8d025b30b55c9c57 100644 --- a/lldb/source/Commands/CommandObjectTarget.cpp +++ b/lldb/source/Commands/CommandObjectTarget.cpp @@ -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: diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp index e2323ae03d9e63e423bbd009267d6ca413de036b..20c55e63c7a68f8e4e3ed3769f800ba8fc5cc1cb 100644 --- a/lldb/source/Core/Debugger.cpp +++ b/lldb/source/Core/Debugger.cpp @@ -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; } } diff --git a/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp b/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp index c6d2e1ec1628f2795a9e9e9e3078ae092a3eb908..22a7f37740d526b61c20b2cec1ff6e6a26c8f705 100644 --- a/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp +++ b/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp @@ -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; +}