1b9c1b51eSKate Stone //===-- DumpValueObjectOptions.cpp -----------------------------------*- C++ 2b9c1b51eSKate Stone //-*-===// 3c8e7649aSEnrico Granata // 4c8e7649aSEnrico Granata // The LLVM Compiler Infrastructure 5c8e7649aSEnrico Granata // 6c8e7649aSEnrico Granata // This file is distributed under the University of Illinois Open Source 7c8e7649aSEnrico Granata // License. See LICENSE.TXT for details. 8c8e7649aSEnrico Granata // 9c8e7649aSEnrico Granata //===----------------------------------------------------------------------===// 10c8e7649aSEnrico Granata 11c8e7649aSEnrico Granata #include "lldb/DataFormatters/DumpValueObjectOptions.h" 12c8e7649aSEnrico Granata 13c8e7649aSEnrico Granata #include "lldb/Core/ValueObject.h" 14c8e7649aSEnrico Granata 15c8e7649aSEnrico Granata using namespace lldb; 16c8e7649aSEnrico Granata using namespace lldb_private; 17c8e7649aSEnrico Granata 18b9c1b51eSKate Stone DumpValueObjectOptions::DumpValueObjectOptions() 19b9c1b51eSKate Stone : m_summary_sp(), m_root_valobj_name(), 20c8e7649aSEnrico Granata m_max_ptr_depth(PointerDepth{PointerDepth::Mode::Default, 0}), 219ac0dac1SEnrico Granata m_decl_printing_helper(), m_pointer_as_array(), m_use_synthetic(true), 22b9c1b51eSKate Stone m_scope_already_checked(false), m_flat_output(false), m_ignore_cap(false), 23b9c1b51eSKate Stone m_show_types(false), m_show_location(false), m_use_objc(false), 24b9c1b51eSKate Stone m_hide_root_type(false), m_hide_name(false), m_hide_value(false), 25b9c1b51eSKate Stone m_run_validator(false), m_use_type_display_name(true), 26b9c1b51eSKate Stone m_allow_oneliner_mode(true), m_hide_pointer_value(false), 27b9c1b51eSKate Stone m_reveal_empty_aggregates(true) {} 28c8e7649aSEnrico Granata 29b9c1b51eSKate Stone DumpValueObjectOptions::DumpValueObjectOptions(ValueObject &valobj) 30b9c1b51eSKate Stone : DumpValueObjectOptions() { 31c8e7649aSEnrico Granata m_use_dynamic = valobj.GetDynamicValueType(); 32c8e7649aSEnrico Granata m_use_synthetic = valobj.IsSynthetic(); 33c8e7649aSEnrico Granata m_varformat_language = valobj.GetPreferredDisplayLanguage(); 34c8e7649aSEnrico Granata } 35c8e7649aSEnrico Granata 36c8e7649aSEnrico Granata DumpValueObjectOptions & 37b9c1b51eSKate Stone DumpValueObjectOptions::SetMaximumPointerDepth(PointerDepth depth) { 38c8e7649aSEnrico Granata m_max_ptr_depth = depth; 39c8e7649aSEnrico Granata return *this; 40c8e7649aSEnrico Granata } 41c8e7649aSEnrico Granata 42c8e7649aSEnrico Granata DumpValueObjectOptions & 43b9c1b51eSKate Stone DumpValueObjectOptions::SetMaximumDepth(uint32_t depth) { 44c8e7649aSEnrico Granata m_max_depth = depth; 45c8e7649aSEnrico Granata return *this; 46c8e7649aSEnrico Granata } 47c8e7649aSEnrico Granata 48c8e7649aSEnrico Granata DumpValueObjectOptions & 49b9c1b51eSKate Stone DumpValueObjectOptions::SetDeclPrintingHelper(DeclPrintingHelper helper) { 50c8e7649aSEnrico Granata m_decl_printing_helper = helper; 51c8e7649aSEnrico Granata return *this; 52c8e7649aSEnrico Granata } 53c8e7649aSEnrico Granata 54b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetShowTypes(bool show) { 55c8e7649aSEnrico Granata m_show_types = show; 56c8e7649aSEnrico Granata return *this; 57c8e7649aSEnrico Granata } 58c8e7649aSEnrico Granata 59b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetShowLocation(bool show) { 60c8e7649aSEnrico Granata m_show_location = show; 61c8e7649aSEnrico Granata return *this; 62c8e7649aSEnrico Granata } 63c8e7649aSEnrico Granata 64b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetUseObjectiveC(bool use) { 65c8e7649aSEnrico Granata m_use_objc = use; 66c8e7649aSEnrico Granata return *this; 67c8e7649aSEnrico Granata } 68c8e7649aSEnrico Granata 69b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetShowSummary(bool show) { 70*a6682a41SJonas Devlieghere if (!show) 71c8e7649aSEnrico Granata SetOmitSummaryDepth(UINT32_MAX); 72c8e7649aSEnrico Granata else 73c8e7649aSEnrico Granata SetOmitSummaryDepth(0); 74c8e7649aSEnrico Granata return *this; 75c8e7649aSEnrico Granata } 76c8e7649aSEnrico Granata 77c8e7649aSEnrico Granata DumpValueObjectOptions & 78b9c1b51eSKate Stone DumpValueObjectOptions::SetUseDynamicType(lldb::DynamicValueType dyn) { 79c8e7649aSEnrico Granata m_use_dynamic = dyn; 80c8e7649aSEnrico Granata return *this; 81c8e7649aSEnrico Granata } 82c8e7649aSEnrico Granata 83c8e7649aSEnrico Granata DumpValueObjectOptions & 84b9c1b51eSKate Stone DumpValueObjectOptions::SetUseSyntheticValue(bool use_synthetic) { 85c8e7649aSEnrico Granata m_use_synthetic = use_synthetic; 86c8e7649aSEnrico Granata return *this; 87c8e7649aSEnrico Granata } 88c8e7649aSEnrico Granata 89b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetScopeChecked(bool check) { 90c8e7649aSEnrico Granata m_scope_already_checked = check; 91c8e7649aSEnrico Granata return *this; 92c8e7649aSEnrico Granata } 93c8e7649aSEnrico Granata 94b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetFlatOutput(bool flat) { 95c8e7649aSEnrico Granata m_flat_output = flat; 96c8e7649aSEnrico Granata return *this; 97c8e7649aSEnrico Granata } 98c8e7649aSEnrico Granata 99c8e7649aSEnrico Granata DumpValueObjectOptions & 100b9c1b51eSKate Stone DumpValueObjectOptions::SetOmitSummaryDepth(uint32_t depth) { 101c8e7649aSEnrico Granata m_omit_summary_depth = depth; 102c8e7649aSEnrico Granata return *this; 103c8e7649aSEnrico Granata } 104c8e7649aSEnrico Granata 105b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetIgnoreCap(bool ignore) { 106c8e7649aSEnrico Granata m_ignore_cap = ignore; 107c8e7649aSEnrico Granata return *this; 108c8e7649aSEnrico Granata } 109c8e7649aSEnrico Granata 110b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetRawDisplay() { 111c8e7649aSEnrico Granata SetUseSyntheticValue(false); 112c8e7649aSEnrico Granata SetOmitSummaryDepth(UINT32_MAX); 113c8e7649aSEnrico Granata SetIgnoreCap(true); 114c8e7649aSEnrico Granata SetHideName(false); 115c8e7649aSEnrico Granata SetHideValue(false); 116c8e7649aSEnrico Granata SetUseTypeDisplayName(false); 117c8e7649aSEnrico Granata SetAllowOnelinerMode(false); 118c8e7649aSEnrico Granata return *this; 119c8e7649aSEnrico Granata } 120c8e7649aSEnrico Granata 121b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetFormat(lldb::Format format) { 122c8e7649aSEnrico Granata m_format = format; 123c8e7649aSEnrico Granata return *this; 124c8e7649aSEnrico Granata } 125c8e7649aSEnrico Granata 126c8e7649aSEnrico Granata DumpValueObjectOptions & 127b9c1b51eSKate Stone DumpValueObjectOptions::SetSummary(lldb::TypeSummaryImplSP summary) { 128c8e7649aSEnrico Granata m_summary_sp = summary; 129c8e7649aSEnrico Granata return *this; 130c8e7649aSEnrico Granata } 131c8e7649aSEnrico Granata 132c8e7649aSEnrico Granata DumpValueObjectOptions & 133b9c1b51eSKate Stone DumpValueObjectOptions::SetRootValueObjectName(const char *name) { 134c8e7649aSEnrico Granata if (name) 135c8e7649aSEnrico Granata m_root_valobj_name.assign(name); 136c8e7649aSEnrico Granata else 137c8e7649aSEnrico Granata m_root_valobj_name.clear(); 138c8e7649aSEnrico Granata return *this; 139c8e7649aSEnrico Granata } 140c8e7649aSEnrico Granata 141c8e7649aSEnrico Granata DumpValueObjectOptions & 142b9c1b51eSKate Stone DumpValueObjectOptions::SetHideRootType(bool hide_root_type) { 143c8e7649aSEnrico Granata m_hide_root_type = hide_root_type; 144c8e7649aSEnrico Granata return *this; 145c8e7649aSEnrico Granata } 146c8e7649aSEnrico Granata 147b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetHideName(bool hide_name) { 148c8e7649aSEnrico Granata m_hide_name = hide_name; 149c8e7649aSEnrico Granata return *this; 150c8e7649aSEnrico Granata } 151c8e7649aSEnrico Granata 152b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetHideValue(bool hide_value) { 153c8e7649aSEnrico Granata m_hide_value = hide_value; 154c8e7649aSEnrico Granata return *this; 155c8e7649aSEnrico Granata } 156c8e7649aSEnrico Granata 157b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetHidePointerValue(bool hide) { 158c8e7649aSEnrico Granata m_hide_pointer_value = hide; 159c8e7649aSEnrico Granata return *this; 160c8e7649aSEnrico Granata } 161c8e7649aSEnrico Granata 162c8e7649aSEnrico Granata DumpValueObjectOptions & 163b9c1b51eSKate Stone DumpValueObjectOptions::SetVariableFormatDisplayLanguage( 164b9c1b51eSKate Stone lldb::LanguageType lang) { 165c8e7649aSEnrico Granata m_varformat_language = lang; 166c8e7649aSEnrico Granata return *this; 167c8e7649aSEnrico Granata } 168c8e7649aSEnrico Granata 169b9c1b51eSKate Stone DumpValueObjectOptions &DumpValueObjectOptions::SetRunValidator(bool run) { 170c8e7649aSEnrico Granata m_run_validator = run; 171c8e7649aSEnrico Granata return *this; 172c8e7649aSEnrico Granata } 173c8e7649aSEnrico Granata 174c8e7649aSEnrico Granata DumpValueObjectOptions & 175b9c1b51eSKate Stone DumpValueObjectOptions::SetUseTypeDisplayName(bool dis) { 176c8e7649aSEnrico Granata m_use_type_display_name = dis; 177c8e7649aSEnrico Granata return *this; 178c8e7649aSEnrico Granata } 179c8e7649aSEnrico Granata 180c8e7649aSEnrico Granata DumpValueObjectOptions & 181b9c1b51eSKate Stone DumpValueObjectOptions::SetAllowOnelinerMode(bool oneliner) { 182c8e7649aSEnrico Granata m_allow_oneliner_mode = oneliner; 183c8e7649aSEnrico Granata return *this; 184c8e7649aSEnrico Granata } 1858cf44d96SEnrico Granata 1868cf44d96SEnrico Granata DumpValueObjectOptions & 187b9c1b51eSKate Stone DumpValueObjectOptions::SetRevealEmptyAggregates(bool reveal) { 1888cf44d96SEnrico Granata m_reveal_empty_aggregates = reveal; 1898cf44d96SEnrico Granata return *this; 1908cf44d96SEnrico Granata } 1918cf44d96SEnrico Granata 192520a422bSEnrico Granata DumpValueObjectOptions & 193b9c1b51eSKate Stone DumpValueObjectOptions::SetElementCount(uint32_t element_count) { 1949ac0dac1SEnrico Granata m_pointer_as_array = PointerAsArraySettings(element_count); 1959ac0dac1SEnrico Granata return *this; 1969ac0dac1SEnrico Granata } 1979ac0dac1SEnrico Granata 1989ac0dac1SEnrico Granata DumpValueObjectOptions &DumpValueObjectOptions::SetPointerAsArray( 1999ac0dac1SEnrico Granata const PointerAsArraySettings &ptr_array) { 2009ac0dac1SEnrico Granata m_pointer_as_array = ptr_array; 201520a422bSEnrico Granata return *this; 202520a422bSEnrico Granata } 203