/Users/buildslave/jenkins/workspace/coverage/llvm-project/lldb/include/lldb/DataFormatters/DumpValueObjectOptions.h
Line | Count | Source (jump to first uncovered line) |
1 | | //===-- DumpValueObjectOptions.h --------------------------------*- C++ -*-===// |
2 | | // |
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 |
6 | | // |
7 | | //===----------------------------------------------------------------------===// |
8 | | |
9 | | #ifndef LLDB_DATAFORMATTERS_DUMPVALUEOBJECTOPTIONS_H |
10 | | #define LLDB_DATAFORMATTERS_DUMPVALUEOBJECTOPTIONS_H |
11 | | |
12 | | #include <string> |
13 | | |
14 | | #include "lldb/lldb-private.h" |
15 | | #include "lldb/lldb-public.h" |
16 | | |
17 | | #include <functional> |
18 | | #include <string> |
19 | | |
20 | | namespace lldb_private { |
21 | | |
22 | | class DumpValueObjectOptions { |
23 | | public: |
24 | | struct PointerDepth { |
25 | | enum class Mode { Always, Default, Never } m_mode; |
26 | | uint32_t m_count; |
27 | | |
28 | 3.39k | PointerDepth Decremented() const { |
29 | 3.39k | if (m_count > 0) |
30 | 618 | return PointerDepth{m_mode, m_count - 1}; |
31 | 2.77k | return PointerDepth{m_mode, m_count}; |
32 | 3.39k | } |
33 | | |
34 | | bool CanAllowExpansion() const; |
35 | | }; |
36 | | |
37 | | struct PointerAsArraySettings { |
38 | | size_t m_element_count = 0; |
39 | | size_t m_base_element = 0; |
40 | | size_t m_stride = 0; |
41 | | |
42 | 62.9k | PointerAsArraySettings() = default; |
43 | | |
44 | | PointerAsArraySettings(size_t elem_count, size_t base_elem = 0, |
45 | | size_t stride = 1) |
46 | | : m_element_count(elem_count), m_base_element(base_elem), |
47 | 19.0k | m_stride(stride) {} |
48 | | |
49 | 166k | operator bool() { return m_element_count > 0; } |
50 | | }; |
51 | | |
52 | | typedef std::function<bool(ConstString, ConstString, |
53 | | const DumpValueObjectOptions &, Stream &)> |
54 | | DeclPrintingHelper; |
55 | | |
56 | | typedef std::function<bool(ConstString)> ChildPrintingDecider; |
57 | | |
58 | 0 | static const DumpValueObjectOptions DefaultOptions() { |
59 | 0 | static DumpValueObjectOptions g_default_options; |
60 | 0 |
|
61 | 0 | return g_default_options; |
62 | 0 | } |
63 | | |
64 | | DumpValueObjectOptions(); |
65 | | |
66 | | DumpValueObjectOptions(ValueObject &valobj); |
67 | | |
68 | | DumpValueObjectOptions & |
69 | | SetMaximumPointerDepth(PointerDepth depth = {PointerDepth::Mode::Never, 0}); |
70 | | |
71 | | DumpValueObjectOptions &SetMaximumDepth(uint32_t depth, bool is_default); |
72 | | |
73 | | DumpValueObjectOptions &SetDeclPrintingHelper(DeclPrintingHelper helper); |
74 | | |
75 | | DumpValueObjectOptions &SetChildPrintingDecider(ChildPrintingDecider decider); |
76 | | |
77 | | DumpValueObjectOptions &SetShowTypes(bool show = false); |
78 | | |
79 | | DumpValueObjectOptions &SetShowLocation(bool show = false); |
80 | | |
81 | | DumpValueObjectOptions &SetUseObjectiveC(bool use = false); |
82 | | |
83 | | DumpValueObjectOptions &SetShowSummary(bool show = true); |
84 | | |
85 | | DumpValueObjectOptions & |
86 | | SetUseDynamicType(lldb::DynamicValueType dyn = lldb::eNoDynamicValues); |
87 | | |
88 | | DumpValueObjectOptions &SetUseSyntheticValue(bool use_synthetic = true); |
89 | | |
90 | | DumpValueObjectOptions &SetScopeChecked(bool check = true); |
91 | | |
92 | | DumpValueObjectOptions &SetFlatOutput(bool flat = false); |
93 | | |
94 | | DumpValueObjectOptions &SetOmitSummaryDepth(uint32_t depth = 0); |
95 | | |
96 | | DumpValueObjectOptions &SetIgnoreCap(bool ignore = false); |
97 | | |
98 | | DumpValueObjectOptions &SetRawDisplay(); |
99 | | |
100 | | DumpValueObjectOptions &SetFormat(lldb::Format format = lldb::eFormatDefault); |
101 | | |
102 | | DumpValueObjectOptions & |
103 | | SetSummary(lldb::TypeSummaryImplSP summary = lldb::TypeSummaryImplSP()); |
104 | | |
105 | | DumpValueObjectOptions &SetRootValueObjectName(const char *name = nullptr); |
106 | | |
107 | | DumpValueObjectOptions &SetHideRootType(bool hide_root_type = false); |
108 | | |
109 | | DumpValueObjectOptions &SetHideRootName(bool hide_root_name); |
110 | | |
111 | | DumpValueObjectOptions &SetHideName(bool hide_name = false); |
112 | | |
113 | | DumpValueObjectOptions &SetHideValue(bool hide_value = false); |
114 | | |
115 | | DumpValueObjectOptions &SetHidePointerValue(bool hide = false); |
116 | | |
117 | | DumpValueObjectOptions &SetVariableFormatDisplayLanguage( |
118 | | lldb::LanguageType lang = lldb::eLanguageTypeUnknown); |
119 | | |
120 | | DumpValueObjectOptions &SetRunValidator(bool run = true); |
121 | | |
122 | | DumpValueObjectOptions &SetUseTypeDisplayName(bool dis = false); |
123 | | |
124 | | DumpValueObjectOptions &SetAllowOnelinerMode(bool oneliner = false); |
125 | | |
126 | | DumpValueObjectOptions &SetRevealEmptyAggregates(bool reveal = true); |
127 | | |
128 | | DumpValueObjectOptions &SetElementCount(uint32_t element_count = 0); |
129 | | |
130 | | DumpValueObjectOptions & |
131 | | SetPointerAsArray(const PointerAsArraySettings &ptr_array); |
132 | | |
133 | | uint32_t m_max_depth = UINT32_MAX; |
134 | | bool m_max_depth_is_default = true; |
135 | | lldb::DynamicValueType m_use_dynamic = lldb::eNoDynamicValues; |
136 | | uint32_t m_omit_summary_depth = 0; |
137 | | lldb::Format m_format = lldb::eFormatDefault; |
138 | | lldb::TypeSummaryImplSP m_summary_sp; |
139 | | std::string m_root_valobj_name; |
140 | | lldb::LanguageType m_varformat_language = lldb::eLanguageTypeUnknown; |
141 | | PointerDepth m_max_ptr_depth; |
142 | | DeclPrintingHelper m_decl_printing_helper; |
143 | | ChildPrintingDecider m_child_printing_decider; |
144 | | PointerAsArraySettings m_pointer_as_array; |
145 | | bool m_use_synthetic : 1; |
146 | | bool m_scope_already_checked : 1; |
147 | | bool m_flat_output : 1; |
148 | | bool m_ignore_cap : 1; |
149 | | bool m_show_types : 1; |
150 | | bool m_show_location : 1; |
151 | | bool m_use_objc : 1; |
152 | | bool m_hide_root_type : 1; |
153 | | bool m_hide_root_name : 1; |
154 | | bool m_hide_name : 1; |
155 | | bool m_hide_value : 1; |
156 | | bool m_run_validator : 1; |
157 | | bool m_use_type_display_name : 1; |
158 | | bool m_allow_oneliner_mode : 1; |
159 | | bool m_hide_pointer_value : 1; |
160 | | bool m_reveal_empty_aggregates : 1; |
161 | | }; |
162 | | |
163 | | } // namespace lldb_private |
164 | | |
165 | | #endif // LLDB_DATAFORMATTERS_DUMPVALUEOBJECTOPTIONS_H |