1 //===-- DumpValueObjectOptions.cpp -----------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "lldb/DataFormatters/DumpValueObjectOptions.h" 11 12 // C Includes 13 // C++ Includes 14 // Other libraries and framework includes 15 // Project includes 16 #include "lldb/Core/ValueObject.h" 17 18 using namespace lldb; 19 using namespace lldb_private; 20 21 DumpValueObjectOptions::DumpValueObjectOptions() : 22 m_summary_sp(), 23 m_root_valobj_name(), 24 m_max_ptr_depth(PointerDepth{PointerDepth::Mode::Default,0}), 25 m_decl_printing_helper(), 26 m_use_synthetic(true), 27 m_scope_already_checked(false), 28 m_flat_output(false), 29 m_ignore_cap(false), 30 m_show_types(false), 31 m_show_location(false), 32 m_use_objc(false), 33 m_hide_root_type(false), 34 m_hide_name(false), 35 m_hide_value(false), 36 m_run_validator(false), 37 m_use_type_display_name(true), 38 m_allow_oneliner_mode(true), 39 m_hide_pointer_value(false) 40 {} 41 42 43 DumpValueObjectOptions::DumpValueObjectOptions (ValueObject& valobj) : 44 DumpValueObjectOptions() 45 { 46 m_use_dynamic = valobj.GetDynamicValueType(); 47 m_use_synthetic = valobj.IsSynthetic(); 48 m_varformat_language = valobj.GetPreferredDisplayLanguage(); 49 } 50 51 DumpValueObjectOptions& 52 DumpValueObjectOptions::SetMaximumPointerDepth(PointerDepth depth) 53 { 54 m_max_ptr_depth = depth; 55 return *this; 56 } 57 58 DumpValueObjectOptions& 59 DumpValueObjectOptions::SetMaximumDepth(uint32_t depth) 60 { 61 m_max_depth = depth; 62 return *this; 63 } 64 65 DumpValueObjectOptions& 66 DumpValueObjectOptions::SetDeclPrintingHelper(DeclPrintingHelper helper) 67 { 68 m_decl_printing_helper = helper; 69 return *this; 70 } 71 72 DumpValueObjectOptions& 73 DumpValueObjectOptions::SetShowTypes(bool show) 74 { 75 m_show_types = show; 76 return *this; 77 } 78 79 DumpValueObjectOptions& 80 DumpValueObjectOptions::SetShowLocation(bool show) 81 { 82 m_show_location = show; 83 return *this; 84 } 85 86 DumpValueObjectOptions& 87 DumpValueObjectOptions::SetUseObjectiveC(bool use) 88 { 89 m_use_objc = use; 90 return *this; 91 } 92 93 DumpValueObjectOptions& 94 DumpValueObjectOptions::SetShowSummary(bool show) 95 { 96 if (show == false) 97 SetOmitSummaryDepth(UINT32_MAX); 98 else 99 SetOmitSummaryDepth(0); 100 return *this; 101 } 102 103 DumpValueObjectOptions& 104 DumpValueObjectOptions::SetUseDynamicType(lldb::DynamicValueType dyn) 105 { 106 m_use_dynamic = dyn; 107 return *this; 108 } 109 110 DumpValueObjectOptions& 111 DumpValueObjectOptions::SetUseSyntheticValue(bool use_synthetic) 112 { 113 m_use_synthetic = use_synthetic; 114 return *this; 115 } 116 117 DumpValueObjectOptions& 118 DumpValueObjectOptions::SetScopeChecked(bool check) 119 { 120 m_scope_already_checked = check; 121 return *this; 122 } 123 124 DumpValueObjectOptions& 125 DumpValueObjectOptions::SetFlatOutput(bool flat) 126 { 127 m_flat_output = flat; 128 return *this; 129 } 130 131 DumpValueObjectOptions& 132 DumpValueObjectOptions::SetOmitSummaryDepth(uint32_t depth) 133 { 134 m_omit_summary_depth = depth; 135 return *this; 136 } 137 138 DumpValueObjectOptions& 139 DumpValueObjectOptions::SetIgnoreCap(bool ignore) 140 { 141 m_ignore_cap = ignore; 142 return *this; 143 } 144 145 DumpValueObjectOptions& 146 DumpValueObjectOptions::SetRawDisplay() 147 { 148 SetUseSyntheticValue(false); 149 SetOmitSummaryDepth(UINT32_MAX); 150 SetIgnoreCap(true); 151 SetHideName(false); 152 SetHideValue(false); 153 SetUseTypeDisplayName(false); 154 SetAllowOnelinerMode(false); 155 return *this; 156 } 157 158 DumpValueObjectOptions& 159 DumpValueObjectOptions::SetFormat (lldb::Format format) 160 { 161 m_format = format; 162 return *this; 163 } 164 165 DumpValueObjectOptions& 166 DumpValueObjectOptions::SetSummary (lldb::TypeSummaryImplSP summary) 167 { 168 m_summary_sp = summary; 169 return *this; 170 } 171 172 DumpValueObjectOptions& 173 DumpValueObjectOptions::SetRootValueObjectName (const char* name) 174 { 175 if (name) 176 m_root_valobj_name.assign(name); 177 else 178 m_root_valobj_name.clear(); 179 return *this; 180 } 181 182 DumpValueObjectOptions& 183 DumpValueObjectOptions::SetHideRootType (bool hide_root_type) 184 { 185 m_hide_root_type = hide_root_type; 186 return *this; 187 } 188 189 DumpValueObjectOptions& 190 DumpValueObjectOptions::SetHideName (bool hide_name) 191 { 192 m_hide_name = hide_name; 193 return *this; 194 } 195 196 DumpValueObjectOptions& 197 DumpValueObjectOptions::SetHideValue (bool hide_value) 198 { 199 m_hide_value = hide_value; 200 return *this; 201 } 202 203 DumpValueObjectOptions& 204 DumpValueObjectOptions::SetHidePointerValue (bool hide) 205 { 206 m_hide_pointer_value = hide; 207 return *this; 208 } 209 210 DumpValueObjectOptions& 211 DumpValueObjectOptions::SetVariableFormatDisplayLanguage (lldb::LanguageType lang) 212 { 213 m_varformat_language = lang; 214 return *this; 215 } 216 217 DumpValueObjectOptions& 218 DumpValueObjectOptions::SetRunValidator (bool run) 219 { 220 m_run_validator = run; 221 return *this; 222 } 223 224 DumpValueObjectOptions& 225 DumpValueObjectOptions::SetUseTypeDisplayName (bool dis) 226 { 227 m_use_type_display_name = dis; 228 return *this; 229 } 230 231 DumpValueObjectOptions& 232 DumpValueObjectOptions::SetAllowOnelinerMode (bool oneliner) 233 { 234 m_allow_oneliner_mode = oneliner; 235 return *this; 236 } 237