LLDB  mainline
SBVariablesOptions.cpp
Go to the documentation of this file.
1 //===-- SBVariablesOptions.cpp --------------------------------------------===//
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 
10 #include "SBReproducerPrivate.h"
11 #include "lldb/API/SBTarget.h"
12 #include "lldb/Target/Target.h"
13 
14 #include "lldb/lldb-private.h"
15 
16 using namespace lldb;
17 using namespace lldb_private;
18 
20 public:
22  : m_include_arguments(false), m_include_locals(false),
23  m_include_statics(false), m_in_scope_only(false),
24  m_include_runtime_support_values(false) {}
25 
26  VariablesOptionsImpl(const VariablesOptionsImpl &) = default;
27 
28  ~VariablesOptionsImpl() = default;
29 
30  VariablesOptionsImpl &operator=(const VariablesOptionsImpl &) = default;
31 
32  bool GetIncludeArguments() const { return m_include_arguments; }
33 
34  void SetIncludeArguments(bool b) { m_include_arguments = b; }
35 
36  bool GetIncludeRecognizedArguments(const lldb::TargetSP &target_sp) const {
37  if (m_include_recognized_arguments != eLazyBoolCalculate)
38  return m_include_recognized_arguments;
39  return target_sp ? target_sp->GetDisplayRecognizedArguments() : false;
40  }
41 
43  m_include_recognized_arguments = b ? eLazyBoolYes : eLazyBoolNo;
44  }
45 
46  bool GetIncludeLocals() const { return m_include_locals; }
47 
48  void SetIncludeLocals(bool b) { m_include_locals = b; }
49 
50  bool GetIncludeStatics() const { return m_include_statics; }
51 
52  void SetIncludeStatics(bool b) { m_include_statics = b; }
53 
54  bool GetInScopeOnly() const { return m_in_scope_only; }
55 
56  void SetInScopeOnly(bool b) { m_in_scope_only = b; }
57 
59  return m_include_runtime_support_values;
60  }
61 
63  m_include_runtime_support_values = b;
64  }
65 
66  lldb::DynamicValueType GetUseDynamic() const { return m_use_dynamic; }
67 
68  void SetUseDynamic(lldb::DynamicValueType d) { m_use_dynamic = d; }
69 
70 private:
72  bool m_include_locals : 1;
74  bool m_in_scope_only : 1;
76  LazyBool m_include_recognized_arguments =
77  eLazyBoolCalculate; // can be overridden with a setting
79 };
80 
82  : m_opaque_up(new VariablesOptionsImpl()) {
84 }
85 
87  : m_opaque_up(new VariablesOptionsImpl(options.ref())) {
89  (const lldb::SBVariablesOptions &), options);
90 }
91 
93 operator=(const SBVariablesOptions &options) {
96  SBVariablesOptions, operator=,(const lldb::SBVariablesOptions &),
97  options);
98 
99  m_opaque_up = std::make_unique<VariablesOptionsImpl>(options.ref());
100  return LLDB_RECORD_RESULT(*this);
101 }
102 
104 
107  return this->operator bool();
108 }
109 SBVariablesOptions::operator bool() const {
111 
112  return m_opaque_up != nullptr;
113 }
114 
118 
119  return m_opaque_up->GetIncludeArguments();
120 }
121 
124  arguments);
125 
126  m_opaque_up->SetIncludeArguments(arguments);
127 }
128 
130  const lldb::SBTarget &target) const {
133  (const lldb::SBTarget &), target);
134 
135  return m_opaque_up->GetIncludeRecognizedArguments(target.GetSP());
136 }
137 
140  (bool), arguments);
141 
142  m_opaque_up->SetIncludeRecognizedArguments(arguments);
143 }
144 
147 
148  return m_opaque_up->GetIncludeLocals();
149 }
150 
153  locals);
154 
155  m_opaque_up->SetIncludeLocals(locals);
156 }
157 
160 
161  return m_opaque_up->GetIncludeStatics();
162 }
163 
166  statics);
167 
168  m_opaque_up->SetIncludeStatics(statics);
169 }
170 
173 
174  return m_opaque_up->GetInScopeOnly();
175 }
176 
177 void SBVariablesOptions::SetInScopeOnly(bool in_scope_only) {
179  in_scope_only);
180 
181  m_opaque_up->SetInScopeOnly(in_scope_only);
182 }
183 
187 
188  return m_opaque_up->GetIncludeRuntimeSupportValues();
189 }
190 
192  bool runtime_support_values) {
194  (bool), runtime_support_values);
195 
196  m_opaque_up->SetIncludeRuntimeSupportValues(runtime_support_values);
197 }
198 
201  GetUseDynamic);
202 
203  return m_opaque_up->GetUseDynamic();
204 }
205 
208  (lldb::DynamicValueType), dynamic);
209 
210  m_opaque_up->SetUseDynamic(dynamic);
211 }
212 
214  return m_opaque_up.operator->();
215 }
216 
218  return m_opaque_up.operator->();
219 }
220 
222 
224 
226  return *m_opaque_up;
227 }
228 
230  : m_opaque_up(std::move(lldb_object_ptr)) {}
231 
233  m_opaque_up.reset(std::move(lldb_object_ptr));
234 }
235 
236 namespace lldb_private {
237 namespace repro {
238 
239 template <>
243  (const lldb::SBVariablesOptions &));
246  SBVariablesOptions, operator=,(const lldb::SBVariablesOptions &));
248  LLDB_REGISTER_METHOD_CONST(bool, SBVariablesOptions, operator bool, ());
249  LLDB_REGISTER_METHOD_CONST(bool, SBVariablesOptions, GetIncludeArguments,
250  ());
251  LLDB_REGISTER_METHOD(void, SBVariablesOptions, SetIncludeArguments, (bool));
253  GetIncludeRecognizedArguments,
254  (const lldb::SBTarget &));
256  SetIncludeRecognizedArguments, (bool));
257  LLDB_REGISTER_METHOD_CONST(bool, SBVariablesOptions, GetIncludeLocals, ());
258  LLDB_REGISTER_METHOD(void, SBVariablesOptions, SetIncludeLocals, (bool));
259  LLDB_REGISTER_METHOD_CONST(bool, SBVariablesOptions, GetIncludeStatics, ());
260  LLDB_REGISTER_METHOD(void, SBVariablesOptions, SetIncludeStatics, (bool));
261  LLDB_REGISTER_METHOD_CONST(bool, SBVariablesOptions, GetInScopeOnly, ());
262  LLDB_REGISTER_METHOD(void, SBVariablesOptions, SetInScopeOnly, (bool));
264  GetIncludeRuntimeSupportValues, ());
266  SetIncludeRuntimeSupportValues, (bool));
268  GetUseDynamic, ());
269  LLDB_REGISTER_METHOD(void, SBVariablesOptions, SetUseDynamic,
271 }
272 
273 }
274 }
lldb::SBVariablesOptions
Definition: SBVariablesOptions.h:19
VariablesOptionsImpl::GetIncludeLocals
bool GetIncludeLocals() const
Definition: SBVariablesOptions.cpp:46
lldb::SBVariablesOptions::~SBVariablesOptions
~SBVariablesOptions()
lldb::eNoDynamicValues
@ eNoDynamicValues
Definition: lldb-enumerations.h:495
VariablesOptionsImpl::GetIncludeStatics
bool GetIncludeStatics() const
Definition: SBVariablesOptions.cpp:50
LLDB_RECORD_RESULT
#define LLDB_RECORD_RESULT(Result)
Definition: ReproducerInstrumentation.h:211
LLDB_RECORD_METHOD_CONST_NO_ARGS
#define LLDB_RECORD_METHOD_CONST_NO_ARGS(Result, Class, Method)
Definition: ReproducerInstrumentation.h:168
lldb::SBVariablesOptions::GetIncludeLocals
bool GetIncludeLocals() const
Definition: SBVariablesOptions.cpp:145
lldb::SBVariablesOptions::get
VariablesOptionsImpl * get()
Definition: SBVariablesOptions.cpp:221
VariablesOptionsImpl::GetIncludeRuntimeSupportValues
bool GetIncludeRuntimeSupportValues() const
Definition: SBVariablesOptions.cpp:58
lldb_private::eLazyBoolYes
@ eLazyBoolYes
Definition: lldb-private-enumerations.h:115
VariablesOptionsImpl::GetInScopeOnly
bool GetInScopeOnly() const
Definition: SBVariablesOptions.cpp:54
lldb::SBVariablesOptions::IsValid
bool IsValid() const
Definition: SBVariablesOptions.cpp:105
LLDB_RECORD_CONSTRUCTOR_NO_ARGS
#define LLDB_RECORD_CONSTRUCTOR_NO_ARGS(Class)
Definition: ReproducerInstrumentation.h:136
LLDB_REGISTER_METHOD_CONST
#define LLDB_REGISTER_METHOD_CONST(Result, Class, Method, Signature)
Definition: ReproducerInstrumentation.h:98
lldb::SBVariablesOptions::GetUseDynamic
lldb::DynamicValueType GetUseDynamic() const
Definition: SBVariablesOptions.cpp:199
SBReproducerPrivate.h
lldb_private::LazyBool
LazyBool
Definition: lldb-private-enumerations.h:115
LLDB_REGISTER_CONSTRUCTOR
#define LLDB_REGISTER_CONSTRUCTOR(Class, Signature)
Definition: ReproducerInstrumentation.h:89
VariablesOptionsImpl::SetInScopeOnly
void SetInScopeOnly(bool b)
Definition: SBVariablesOptions.cpp:56
VariablesOptionsImpl::SetUseDynamic
void SetUseDynamic(lldb::DynamicValueType d)
Definition: SBVariablesOptions.cpp:68
lldb::SBVariablesOptions::GetIncludeRecognizedArguments
bool GetIncludeRecognizedArguments(const lldb::SBTarget &) const
Definition: SBVariablesOptions.cpp:129
Target.h
lldb::SBTarget
Definition: SBTarget.h:29
LLDB_RECORD_METHOD
#define LLDB_RECORD_METHOD(Result, Class, Method, Signature,...)
Definition: ReproducerInstrumentation.h:158
lldb::SBVariablesOptions::SetIncludeRecognizedArguments
void SetIncludeRecognizedArguments(bool)
Definition: SBVariablesOptions.cpp:138
lldb::SBVariablesOptions::GetIncludeStatics
bool GetIncludeStatics() const
Definition: SBVariablesOptions.cpp:158
VariablesOptionsImpl::m_include_runtime_support_values
bool m_include_runtime_support_values
Definition: SBVariablesOptions.cpp:75
lldb::SBVariablesOptions::operator->
VariablesOptionsImpl * operator->()
Definition: SBVariablesOptions.cpp:213
lldb::SBVariablesOptions::SetInScopeOnly
void SetInScopeOnly(bool)
Definition: SBVariablesOptions.cpp:177
lldb::DynamicValueType
DynamicValueType
Definition: lldb-enumerations.h:494
VariablesOptionsImpl::SetIncludeStatics
void SetIncludeStatics(bool b)
Definition: SBVariablesOptions.cpp:52
lldb::SBVariablesOptions::GetIncludeRuntimeSupportValues
bool GetIncludeRuntimeSupportValues() const
Definition: SBVariablesOptions.cpp:184
lldb::SBVariablesOptions::GetIncludeArguments
bool GetIncludeArguments() const
Definition: SBVariablesOptions.cpp:115
lldb::SBVariablesOptions::SetIncludeRuntimeSupportValues
void SetIncludeRuntimeSupportValues(bool)
Definition: SBVariablesOptions.cpp:191
lldb::SBVariablesOptions::SetIncludeLocals
void SetIncludeLocals(bool)
Definition: SBVariablesOptions.cpp:151
lldb-private.h
VariablesOptionsImpl::VariablesOptionsImpl
VariablesOptionsImpl()
Definition: SBVariablesOptions.cpp:21
LLDB_RECORD_CONSTRUCTOR
#define LLDB_RECORD_CONSTRUCTOR(Class, Signature,...)
Definition: ReproducerInstrumentation.h:133
lldb_private::repro::Registry
The registry contains a unique mapping between functions and their ID.
Definition: ReproducerInstrumentation.h:517
lldb::SBVariablesOptions::m_opaque_up
std::unique_ptr< VariablesOptionsImpl > m_opaque_up
Definition: SBVariablesOptions.h:77
SBVariablesOptions.h
lldb_private::eLazyBoolNo
@ eLazyBoolNo
Definition: lldb-private-enumerations.h:115
lldb::SBVariablesOptions::SetOptions
void SetOptions(VariablesOptionsImpl *lldb_object_ptr)
Definition: SBVariablesOptions.cpp:232
lldb::SBVariablesOptions::GetInScopeOnly
bool GetInScopeOnly() const
Definition: SBVariablesOptions.cpp:171
VariablesOptionsImpl::m_include_statics
bool m_include_statics
Definition: SBVariablesOptions.cpp:73
VariablesOptionsImpl::GetIncludeArguments
bool GetIncludeArguments() const
Definition: SBVariablesOptions.cpp:32
lldb::SBVariablesOptions::ref
VariablesOptionsImpl & ref()
Definition: SBVariablesOptions.cpp:223
lldb::SBVariablesOptions::SetIncludeStatics
void SetIncludeStatics(bool)
Definition: SBVariablesOptions.cpp:164
VariablesOptionsImpl::SetIncludeLocals
void SetIncludeLocals(bool b)
Definition: SBVariablesOptions.cpp:48
VariablesOptionsImpl::m_include_arguments
bool m_include_arguments
Definition: SBVariablesOptions.cpp:71
lldb::SBVariablesOptions::SBVariablesOptions
SBVariablesOptions()
Definition: SBVariablesOptions.cpp:81
lldb::SBVariablesOptions::SetUseDynamic
void SetUseDynamic(lldb::DynamicValueType)
Definition: SBVariablesOptions.cpp:206
VariablesOptionsImpl::SetIncludeRuntimeSupportValues
void SetIncludeRuntimeSupportValues(bool b)
Definition: SBVariablesOptions.cpp:62
lldb_private::repro::RegisterMethods< SBVariablesOptions >
void RegisterMethods< SBVariablesOptions >(Registry &R)
Definition: SBVariablesOptions.cpp:240
lldb::SBVariablesOptions::operator=
SBVariablesOptions & operator=(const SBVariablesOptions &options)
Definition: SBVariablesOptions.cpp:93
VariablesOptionsImpl
Definition: SBVariablesOptions.cpp:19
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
lldb_private::eLazyBoolCalculate
@ eLazyBoolCalculate
Definition: lldb-private-enumerations.h:115
VariablesOptionsImpl::m_include_locals
bool m_include_locals
Definition: SBVariablesOptions.cpp:72
lldb::SBTarget::GetSP
lldb::TargetSP GetSP() const
Definition: SBTarget.cpp:607
VariablesOptionsImpl::m_in_scope_only
bool m_in_scope_only
Definition: SBVariablesOptions.cpp:74
VariablesOptionsImpl::SetIncludeArguments
void SetIncludeArguments(bool b)
Definition: SBVariablesOptions.cpp:34
VariablesOptionsImpl::GetUseDynamic
lldb::DynamicValueType GetUseDynamic() const
Definition: SBVariablesOptions.cpp:66
VariablesOptionsImpl::SetIncludeRecognizedArguments
void SetIncludeRecognizedArguments(bool b)
Definition: SBVariablesOptions.cpp:42
LLDB_RECORD_METHOD_CONST
#define LLDB_RECORD_METHOD_CONST(Result, Class, Method, Signature,...)
Definition: ReproducerInstrumentation.h:161
SBTarget.h
lldb::SBVariablesOptions::SetIncludeArguments
void SetIncludeArguments(bool)
Definition: SBVariablesOptions.cpp:122
lldb
Definition: SBAddress.h:15
LLDB_REGISTER_METHOD
#define LLDB_REGISTER_METHOD(Result, Class, Method, Signature)
Definition: ReproducerInstrumentation.h:93
VariablesOptionsImpl::GetIncludeRecognizedArguments
bool GetIncludeRecognizedArguments(const lldb::TargetSP &target_sp) const
Definition: SBVariablesOptions.cpp:36