xref: /src/contrib/llvm-project/lldb/source/DataFormatters/DumpValueObjectOptions.cpp (revision 06c3fb2749bda94cb5201f81ffdb8fa6c3161b2e)
1cfca06d7SDimitry Andric //===-- DumpValueObjectOptions.cpp ----------------------------------------===//
2e81d9d49SDimitry Andric //
35f29bb8aSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
45f29bb8aSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
55f29bb8aSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6e81d9d49SDimitry Andric //
7e81d9d49SDimitry Andric //===----------------------------------------------------------------------===//
8e81d9d49SDimitry Andric 
9e81d9d49SDimitry Andric #include "lldb/DataFormatters/DumpValueObjectOptions.h"
10e81d9d49SDimitry Andric 
11e81d9d49SDimitry Andric #include "lldb/Core/ValueObject.h"
12e81d9d49SDimitry Andric 
13e81d9d49SDimitry Andric using namespace lldb;
14e81d9d49SDimitry Andric using namespace lldb_private;
15e81d9d49SDimitry Andric 
DumpValueObjectOptions()1614f1b3e8SDimitry Andric DumpValueObjectOptions::DumpValueObjectOptions()
1714f1b3e8SDimitry Andric     : m_summary_sp(), m_root_valobj_name(),
18e81d9d49SDimitry Andric       m_max_ptr_depth(PointerDepth{PointerDepth::Mode::Default, 0}),
197fa27ce4SDimitry Andric       m_decl_printing_helper(), m_child_printing_decider(),
207fa27ce4SDimitry Andric       m_pointer_as_array(), m_use_synthetic(true),
2114f1b3e8SDimitry Andric       m_scope_already_checked(false), m_flat_output(false), m_ignore_cap(false),
2214f1b3e8SDimitry Andric       m_show_types(false), m_show_location(false), m_use_objc(false),
237fa27ce4SDimitry Andric       m_hide_root_type(false), m_hide_root_name(false), m_hide_name(false),
247fa27ce4SDimitry Andric       m_hide_value(false), m_run_validator(false),
257fa27ce4SDimitry Andric       m_use_type_display_name(true), m_allow_oneliner_mode(true),
267fa27ce4SDimitry Andric       m_hide_pointer_value(false), m_reveal_empty_aggregates(true) {}
27e81d9d49SDimitry Andric 
DumpValueObjectOptions(ValueObject & valobj)2814f1b3e8SDimitry Andric DumpValueObjectOptions::DumpValueObjectOptions(ValueObject &valobj)
2914f1b3e8SDimitry Andric     : DumpValueObjectOptions() {
30e81d9d49SDimitry Andric   m_use_dynamic = valobj.GetDynamicValueType();
31e81d9d49SDimitry Andric   m_use_synthetic = valobj.IsSynthetic();
32e81d9d49SDimitry Andric   m_varformat_language = valobj.GetPreferredDisplayLanguage();
33e81d9d49SDimitry Andric }
34e81d9d49SDimitry Andric 
35e81d9d49SDimitry Andric DumpValueObjectOptions &
SetMaximumPointerDepth(PointerDepth depth)3614f1b3e8SDimitry Andric DumpValueObjectOptions::SetMaximumPointerDepth(PointerDepth depth) {
37e81d9d49SDimitry Andric   m_max_ptr_depth = depth;
38e81d9d49SDimitry Andric   return *this;
39e81d9d49SDimitry Andric }
40e81d9d49SDimitry Andric 
41e81d9d49SDimitry Andric DumpValueObjectOptions &
SetMaximumDepth(uint32_t depth,bool is_default)42145449b1SDimitry Andric DumpValueObjectOptions::SetMaximumDepth(uint32_t depth, bool is_default) {
43e81d9d49SDimitry Andric   m_max_depth = depth;
44145449b1SDimitry Andric   m_max_depth_is_default = is_default;
45e81d9d49SDimitry Andric   return *this;
46e81d9d49SDimitry Andric }
47e81d9d49SDimitry Andric 
48e81d9d49SDimitry Andric DumpValueObjectOptions &
SetDeclPrintingHelper(DeclPrintingHelper helper)4914f1b3e8SDimitry Andric DumpValueObjectOptions::SetDeclPrintingHelper(DeclPrintingHelper helper) {
50e81d9d49SDimitry Andric   m_decl_printing_helper = helper;
51e81d9d49SDimitry Andric   return *this;
52e81d9d49SDimitry Andric }
53e81d9d49SDimitry Andric 
547fa27ce4SDimitry Andric DumpValueObjectOptions &
SetChildPrintingDecider(ChildPrintingDecider decider)557fa27ce4SDimitry Andric DumpValueObjectOptions::SetChildPrintingDecider(ChildPrintingDecider decider) {
567fa27ce4SDimitry Andric   m_child_printing_decider = decider;
577fa27ce4SDimitry Andric   return *this;
587fa27ce4SDimitry Andric }
597fa27ce4SDimitry Andric 
SetShowTypes(bool show)6014f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetShowTypes(bool show) {
61e81d9d49SDimitry Andric   m_show_types = show;
62e81d9d49SDimitry Andric   return *this;
63e81d9d49SDimitry Andric }
64e81d9d49SDimitry Andric 
SetShowLocation(bool show)6514f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetShowLocation(bool show) {
66e81d9d49SDimitry Andric   m_show_location = show;
67e81d9d49SDimitry Andric   return *this;
68e81d9d49SDimitry Andric }
69e81d9d49SDimitry Andric 
SetUseObjectiveC(bool use)7014f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetUseObjectiveC(bool use) {
71e81d9d49SDimitry Andric   m_use_objc = use;
72e81d9d49SDimitry Andric   return *this;
73e81d9d49SDimitry Andric }
74e81d9d49SDimitry Andric 
SetShowSummary(bool show)7514f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetShowSummary(bool show) {
7694994d37SDimitry Andric   if (!show)
77e81d9d49SDimitry Andric     SetOmitSummaryDepth(UINT32_MAX);
78e81d9d49SDimitry Andric   else
79e81d9d49SDimitry Andric     SetOmitSummaryDepth(0);
80e81d9d49SDimitry Andric   return *this;
81e81d9d49SDimitry Andric }
82e81d9d49SDimitry Andric 
83e81d9d49SDimitry Andric DumpValueObjectOptions &
SetUseDynamicType(lldb::DynamicValueType dyn)8414f1b3e8SDimitry Andric DumpValueObjectOptions::SetUseDynamicType(lldb::DynamicValueType dyn) {
85e81d9d49SDimitry Andric   m_use_dynamic = dyn;
86e81d9d49SDimitry Andric   return *this;
87e81d9d49SDimitry Andric }
88e81d9d49SDimitry Andric 
89e81d9d49SDimitry Andric DumpValueObjectOptions &
SetUseSyntheticValue(bool use_synthetic)9014f1b3e8SDimitry Andric DumpValueObjectOptions::SetUseSyntheticValue(bool use_synthetic) {
91e81d9d49SDimitry Andric   m_use_synthetic = use_synthetic;
92e81d9d49SDimitry Andric   return *this;
93e81d9d49SDimitry Andric }
94e81d9d49SDimitry Andric 
SetScopeChecked(bool check)9514f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetScopeChecked(bool check) {
96e81d9d49SDimitry Andric   m_scope_already_checked = check;
97e81d9d49SDimitry Andric   return *this;
98e81d9d49SDimitry Andric }
99e81d9d49SDimitry Andric 
SetFlatOutput(bool flat)10014f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetFlatOutput(bool flat) {
101e81d9d49SDimitry Andric   m_flat_output = flat;
102e81d9d49SDimitry Andric   return *this;
103e81d9d49SDimitry Andric }
104e81d9d49SDimitry Andric 
105e81d9d49SDimitry Andric DumpValueObjectOptions &
SetOmitSummaryDepth(uint32_t depth)10614f1b3e8SDimitry Andric DumpValueObjectOptions::SetOmitSummaryDepth(uint32_t depth) {
107e81d9d49SDimitry Andric   m_omit_summary_depth = depth;
108e81d9d49SDimitry Andric   return *this;
109e81d9d49SDimitry Andric }
110e81d9d49SDimitry Andric 
SetIgnoreCap(bool ignore)11114f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetIgnoreCap(bool ignore) {
112e81d9d49SDimitry Andric   m_ignore_cap = ignore;
113e81d9d49SDimitry Andric   return *this;
114e81d9d49SDimitry Andric }
115e81d9d49SDimitry Andric 
SetRawDisplay()11614f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetRawDisplay() {
117e81d9d49SDimitry Andric   SetUseSyntheticValue(false);
118e81d9d49SDimitry Andric   SetOmitSummaryDepth(UINT32_MAX);
119e81d9d49SDimitry Andric   SetIgnoreCap(true);
120e81d9d49SDimitry Andric   SetHideName(false);
121e81d9d49SDimitry Andric   SetHideValue(false);
122e81d9d49SDimitry Andric   SetUseTypeDisplayName(false);
123e81d9d49SDimitry Andric   SetAllowOnelinerMode(false);
124e81d9d49SDimitry Andric   return *this;
125e81d9d49SDimitry Andric }
126e81d9d49SDimitry Andric 
SetFormat(lldb::Format format)12714f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetFormat(lldb::Format format) {
128e81d9d49SDimitry Andric   m_format = format;
129e81d9d49SDimitry Andric   return *this;
130e81d9d49SDimitry Andric }
131e81d9d49SDimitry Andric 
132e81d9d49SDimitry Andric DumpValueObjectOptions &
SetSummary(lldb::TypeSummaryImplSP summary)13314f1b3e8SDimitry Andric DumpValueObjectOptions::SetSummary(lldb::TypeSummaryImplSP summary) {
134e81d9d49SDimitry Andric   m_summary_sp = summary;
135e81d9d49SDimitry Andric   return *this;
136e81d9d49SDimitry Andric }
137e81d9d49SDimitry Andric 
138e81d9d49SDimitry Andric DumpValueObjectOptions &
SetRootValueObjectName(const char * name)13914f1b3e8SDimitry Andric DumpValueObjectOptions::SetRootValueObjectName(const char *name) {
140e81d9d49SDimitry Andric   if (name)
141e81d9d49SDimitry Andric     m_root_valobj_name.assign(name);
142e81d9d49SDimitry Andric   else
143e81d9d49SDimitry Andric     m_root_valobj_name.clear();
144e81d9d49SDimitry Andric   return *this;
145e81d9d49SDimitry Andric }
146e81d9d49SDimitry Andric 
147e81d9d49SDimitry Andric DumpValueObjectOptions &
SetHideRootType(bool hide_root_type)14814f1b3e8SDimitry Andric DumpValueObjectOptions::SetHideRootType(bool hide_root_type) {
149e81d9d49SDimitry Andric   m_hide_root_type = hide_root_type;
150e81d9d49SDimitry Andric   return *this;
151e81d9d49SDimitry Andric }
152e81d9d49SDimitry Andric 
1537fa27ce4SDimitry Andric DumpValueObjectOptions &
SetHideRootName(bool hide_root_name)1547fa27ce4SDimitry Andric DumpValueObjectOptions::SetHideRootName(bool hide_root_name) {
1557fa27ce4SDimitry Andric   m_hide_root_name = hide_root_name;
1567fa27ce4SDimitry Andric   return *this;
1577fa27ce4SDimitry Andric }
1587fa27ce4SDimitry Andric 
SetHideName(bool hide_name)15914f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetHideName(bool hide_name) {
160e81d9d49SDimitry Andric   m_hide_name = hide_name;
161e81d9d49SDimitry Andric   return *this;
162e81d9d49SDimitry Andric }
163e81d9d49SDimitry Andric 
SetHideValue(bool hide_value)16414f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetHideValue(bool hide_value) {
165e81d9d49SDimitry Andric   m_hide_value = hide_value;
166e81d9d49SDimitry Andric   return *this;
167e81d9d49SDimitry Andric }
168e81d9d49SDimitry Andric 
SetHidePointerValue(bool hide)16914f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetHidePointerValue(bool hide) {
170e81d9d49SDimitry Andric   m_hide_pointer_value = hide;
171e81d9d49SDimitry Andric   return *this;
172e81d9d49SDimitry Andric }
173e81d9d49SDimitry Andric 
174e81d9d49SDimitry Andric DumpValueObjectOptions &
SetVariableFormatDisplayLanguage(lldb::LanguageType lang)17514f1b3e8SDimitry Andric DumpValueObjectOptions::SetVariableFormatDisplayLanguage(
17614f1b3e8SDimitry Andric     lldb::LanguageType lang) {
177e81d9d49SDimitry Andric   m_varformat_language = lang;
178e81d9d49SDimitry Andric   return *this;
179e81d9d49SDimitry Andric }
180e81d9d49SDimitry Andric 
SetRunValidator(bool run)18114f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetRunValidator(bool run) {
182e81d9d49SDimitry Andric   m_run_validator = run;
183e81d9d49SDimitry Andric   return *this;
184e81d9d49SDimitry Andric }
185e81d9d49SDimitry Andric 
186e81d9d49SDimitry Andric DumpValueObjectOptions &
SetUseTypeDisplayName(bool dis)18714f1b3e8SDimitry Andric DumpValueObjectOptions::SetUseTypeDisplayName(bool dis) {
188e81d9d49SDimitry Andric   m_use_type_display_name = dis;
189e81d9d49SDimitry Andric   return *this;
190e81d9d49SDimitry Andric }
191e81d9d49SDimitry Andric 
192e81d9d49SDimitry Andric DumpValueObjectOptions &
SetAllowOnelinerMode(bool oneliner)19314f1b3e8SDimitry Andric DumpValueObjectOptions::SetAllowOnelinerMode(bool oneliner) {
194e81d9d49SDimitry Andric   m_allow_oneliner_mode = oneliner;
195e81d9d49SDimitry Andric   return *this;
196e81d9d49SDimitry Andric }
197e81d9d49SDimitry Andric 
198e81d9d49SDimitry Andric DumpValueObjectOptions &
SetRevealEmptyAggregates(bool reveal)19914f1b3e8SDimitry Andric DumpValueObjectOptions::SetRevealEmptyAggregates(bool reveal) {
200e81d9d49SDimitry Andric   m_reveal_empty_aggregates = reveal;
201e81d9d49SDimitry Andric   return *this;
202e81d9d49SDimitry Andric }
203e81d9d49SDimitry Andric 
204f3fbd1c0SDimitry Andric DumpValueObjectOptions &
SetElementCount(uint32_t element_count)20514f1b3e8SDimitry Andric DumpValueObjectOptions::SetElementCount(uint32_t element_count) {
20614f1b3e8SDimitry Andric   m_pointer_as_array = PointerAsArraySettings(element_count);
20714f1b3e8SDimitry Andric   return *this;
20814f1b3e8SDimitry Andric }
20914f1b3e8SDimitry Andric 
SetPointerAsArray(const PointerAsArraySettings & ptr_array)21014f1b3e8SDimitry Andric DumpValueObjectOptions &DumpValueObjectOptions::SetPointerAsArray(
21114f1b3e8SDimitry Andric     const PointerAsArraySettings &ptr_array) {
21214f1b3e8SDimitry Andric   m_pointer_as_array = ptr_array;
213f3fbd1c0SDimitry Andric   return *this;
214f3fbd1c0SDimitry Andric }
215