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