1 //===-- DumpValueObjectOptions.cpp ----------------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #include "lldb/DataFormatters/DumpValueObjectOptions.h"
11 #include "lldb/ValueObject/ValueObject.h"
14 using namespace lldb_private
;
16 DumpValueObjectOptions::DumpValueObjectOptions()
17 : m_summary_sp(), m_root_valobj_name(), m_decl_printing_helper(),
18 m_child_printing_decider(), m_pointer_as_array(), m_use_synthetic(true),
19 m_scope_already_checked(false), m_flat_output(false), m_ignore_cap(false),
20 m_show_types(false), m_show_location(false), m_use_objc(false),
21 m_hide_root_type(false), m_hide_root_name(false), m_hide_name(false),
22 m_hide_value(false), m_run_validator(false),
23 m_use_type_display_name(true), m_allow_oneliner_mode(true),
24 m_hide_pointer_value(false), m_reveal_empty_aggregates(true) {}
26 DumpValueObjectOptions::DumpValueObjectOptions(ValueObject
&valobj
)
27 : DumpValueObjectOptions() {
28 m_use_dynamic
= valobj
.GetDynamicValueType();
29 m_use_synthetic
= valobj
.IsSynthetic();
30 m_varformat_language
= valobj
.GetPreferredDisplayLanguage();
33 DumpValueObjectOptions
&
34 DumpValueObjectOptions::SetMaximumPointerDepth(uint32_t depth
) {
35 m_max_ptr_depth
= {depth
};
39 DumpValueObjectOptions
&
40 DumpValueObjectOptions::SetMaximumDepth(uint32_t depth
, bool is_default
) {
42 m_max_depth_is_default
= is_default
;
46 DumpValueObjectOptions
&
47 DumpValueObjectOptions::SetDeclPrintingHelper(DeclPrintingHelper helper
) {
48 m_decl_printing_helper
= helper
;
52 DumpValueObjectOptions
&
53 DumpValueObjectOptions::SetChildPrintingDecider(ChildPrintingDecider decider
) {
54 m_child_printing_decider
= decider
;
58 DumpValueObjectOptions
&DumpValueObjectOptions::SetShowTypes(bool show
) {
63 DumpValueObjectOptions
&DumpValueObjectOptions::SetShowLocation(bool show
) {
64 m_show_location
= show
;
68 DumpValueObjectOptions
&DumpValueObjectOptions::SetUseObjectiveC(bool use
) {
73 DumpValueObjectOptions
&DumpValueObjectOptions::SetShowSummary(bool show
) {
75 SetOmitSummaryDepth(UINT32_MAX
);
77 SetOmitSummaryDepth(0);
81 DumpValueObjectOptions
&
82 DumpValueObjectOptions::SetUseDynamicType(lldb::DynamicValueType dyn
) {
87 DumpValueObjectOptions
&
88 DumpValueObjectOptions::SetUseSyntheticValue(bool use_synthetic
) {
89 m_use_synthetic
= use_synthetic
;
93 DumpValueObjectOptions
&DumpValueObjectOptions::SetScopeChecked(bool check
) {
94 m_scope_already_checked
= check
;
98 DumpValueObjectOptions
&DumpValueObjectOptions::SetFlatOutput(bool flat
) {
103 DumpValueObjectOptions
&
104 DumpValueObjectOptions::SetOmitSummaryDepth(uint32_t depth
) {
105 m_omit_summary_depth
= depth
;
109 DumpValueObjectOptions
&DumpValueObjectOptions::SetIgnoreCap(bool ignore
) {
110 m_ignore_cap
= ignore
;
114 DumpValueObjectOptions
&DumpValueObjectOptions::SetRawDisplay() {
115 SetUseSyntheticValue(false);
116 SetOmitSummaryDepth(UINT32_MAX
);
120 SetUseTypeDisplayName(false);
121 SetAllowOnelinerMode(false);
125 DumpValueObjectOptions
&DumpValueObjectOptions::SetFormat(lldb::Format format
) {
130 DumpValueObjectOptions
&
131 DumpValueObjectOptions::SetSummary(lldb::TypeSummaryImplSP summary
) {
132 m_summary_sp
= summary
;
136 DumpValueObjectOptions
&
137 DumpValueObjectOptions::SetRootValueObjectName(const char *name
) {
139 m_root_valobj_name
.assign(name
);
141 m_root_valobj_name
.clear();
145 DumpValueObjectOptions
&
146 DumpValueObjectOptions::SetHideRootType(bool hide_root_type
) {
147 m_hide_root_type
= hide_root_type
;
151 DumpValueObjectOptions
&
152 DumpValueObjectOptions::SetHideRootName(bool hide_root_name
) {
153 m_hide_root_name
= hide_root_name
;
157 DumpValueObjectOptions
&DumpValueObjectOptions::SetHideName(bool hide_name
) {
158 m_hide_name
= hide_name
;
162 DumpValueObjectOptions
&DumpValueObjectOptions::SetHideValue(bool hide_value
) {
163 m_hide_value
= hide_value
;
167 DumpValueObjectOptions
&DumpValueObjectOptions::SetHidePointerValue(bool hide
) {
168 m_hide_pointer_value
= hide
;
172 DumpValueObjectOptions
&
173 DumpValueObjectOptions::SetVariableFormatDisplayLanguage(
174 lldb::LanguageType lang
) {
175 m_varformat_language
= lang
;
179 DumpValueObjectOptions
&DumpValueObjectOptions::SetRunValidator(bool run
) {
180 m_run_validator
= run
;
184 DumpValueObjectOptions
&
185 DumpValueObjectOptions::SetUseTypeDisplayName(bool dis
) {
186 m_use_type_display_name
= dis
;
190 DumpValueObjectOptions
&
191 DumpValueObjectOptions::SetAllowOnelinerMode(bool oneliner
) {
192 m_allow_oneliner_mode
= oneliner
;
196 DumpValueObjectOptions
&
197 DumpValueObjectOptions::SetRevealEmptyAggregates(bool reveal
) {
198 m_reveal_empty_aggregates
= reveal
;
202 DumpValueObjectOptions
&
203 DumpValueObjectOptions::SetElementCount(uint32_t element_count
) {
204 m_pointer_as_array
= PointerAsArraySettings(element_count
);
208 DumpValueObjectOptions
&DumpValueObjectOptions::SetPointerAsArray(
209 const PointerAsArraySettings
&ptr_array
) {
210 m_pointer_as_array
= ptr_array
;