1*0b57cec5SDimitry Andric //===-- SBExpressionOptions.cpp -------------------------------------------===//
2*0b57cec5SDimitry Andric //
3*0b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*0b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*0b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*0b57cec5SDimitry Andric //
7*0b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
8*0b57cec5SDimitry Andric 
9*0b57cec5SDimitry Andric #include "lldb/API/SBExpressionOptions.h"
10*0b57cec5SDimitry Andric #include "SBReproducerPrivate.h"
11*0b57cec5SDimitry Andric #include "Utils.h"
12*0b57cec5SDimitry Andric #include "lldb/API/SBStream.h"
13*0b57cec5SDimitry Andric #include "lldb/Target/Target.h"
14*0b57cec5SDimitry Andric 
15*0b57cec5SDimitry Andric using namespace lldb;
16*0b57cec5SDimitry Andric using namespace lldb_private;
17*0b57cec5SDimitry Andric 
SBExpressionOptions()18*0b57cec5SDimitry Andric SBExpressionOptions::SBExpressionOptions()
19*0b57cec5SDimitry Andric     : m_opaque_up(new EvaluateExpressionOptions()) {
20*0b57cec5SDimitry Andric   LLDB_RECORD_CONSTRUCTOR_NO_ARGS(SBExpressionOptions);
21*0b57cec5SDimitry Andric }
22*0b57cec5SDimitry Andric 
SBExpressionOptions(const SBExpressionOptions & rhs)23*0b57cec5SDimitry Andric SBExpressionOptions::SBExpressionOptions(const SBExpressionOptions &rhs)
24*0b57cec5SDimitry Andric     : m_opaque_up() {
25*0b57cec5SDimitry Andric   LLDB_RECORD_CONSTRUCTOR(SBExpressionOptions,
26*0b57cec5SDimitry Andric                           (const lldb::SBExpressionOptions &), rhs);
27*0b57cec5SDimitry Andric 
28*0b57cec5SDimitry Andric   m_opaque_up = clone(rhs.m_opaque_up);
29*0b57cec5SDimitry Andric }
30*0b57cec5SDimitry Andric 
31*0b57cec5SDimitry Andric const SBExpressionOptions &SBExpressionOptions::
operator =(const SBExpressionOptions & rhs)32*0b57cec5SDimitry Andric operator=(const SBExpressionOptions &rhs) {
33*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(
34*0b57cec5SDimitry Andric       const lldb::SBExpressionOptions &,
35*0b57cec5SDimitry Andric       SBExpressionOptions, operator=,(const lldb::SBExpressionOptions &), rhs);
36*0b57cec5SDimitry Andric 
37*0b57cec5SDimitry Andric   if (this != &rhs)
38*0b57cec5SDimitry Andric     m_opaque_up = clone(rhs.m_opaque_up);
39*0b57cec5SDimitry Andric   return LLDB_RECORD_RESULT(*this);
40*0b57cec5SDimitry Andric }
41*0b57cec5SDimitry Andric 
42*0b57cec5SDimitry Andric SBExpressionOptions::~SBExpressionOptions() = default;
43*0b57cec5SDimitry Andric 
GetCoerceResultToId() const44*0b57cec5SDimitry Andric bool SBExpressionOptions::GetCoerceResultToId() const {
45*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBExpressionOptions,
46*0b57cec5SDimitry Andric                                    GetCoerceResultToId);
47*0b57cec5SDimitry Andric 
48*0b57cec5SDimitry Andric   return m_opaque_up->DoesCoerceToId();
49*0b57cec5SDimitry Andric }
50*0b57cec5SDimitry Andric 
SetCoerceResultToId(bool coerce)51*0b57cec5SDimitry Andric void SBExpressionOptions::SetCoerceResultToId(bool coerce) {
52*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetCoerceResultToId, (bool),
53*0b57cec5SDimitry Andric                      coerce);
54*0b57cec5SDimitry Andric 
55*0b57cec5SDimitry Andric   m_opaque_up->SetCoerceToId(coerce);
56*0b57cec5SDimitry Andric }
57*0b57cec5SDimitry Andric 
GetUnwindOnError() const58*0b57cec5SDimitry Andric bool SBExpressionOptions::GetUnwindOnError() const {
59*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBExpressionOptions, GetUnwindOnError);
60*0b57cec5SDimitry Andric 
61*0b57cec5SDimitry Andric   return m_opaque_up->DoesUnwindOnError();
62*0b57cec5SDimitry Andric }
63*0b57cec5SDimitry Andric 
SetUnwindOnError(bool unwind)64*0b57cec5SDimitry Andric void SBExpressionOptions::SetUnwindOnError(bool unwind) {
65*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetUnwindOnError, (bool),
66*0b57cec5SDimitry Andric                      unwind);
67*0b57cec5SDimitry Andric 
68*0b57cec5SDimitry Andric   m_opaque_up->SetUnwindOnError(unwind);
69*0b57cec5SDimitry Andric }
70*0b57cec5SDimitry Andric 
GetIgnoreBreakpoints() const71*0b57cec5SDimitry Andric bool SBExpressionOptions::GetIgnoreBreakpoints() const {
72*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBExpressionOptions,
73*0b57cec5SDimitry Andric                                    GetIgnoreBreakpoints);
74*0b57cec5SDimitry Andric 
75*0b57cec5SDimitry Andric   return m_opaque_up->DoesIgnoreBreakpoints();
76*0b57cec5SDimitry Andric }
77*0b57cec5SDimitry Andric 
SetIgnoreBreakpoints(bool ignore)78*0b57cec5SDimitry Andric void SBExpressionOptions::SetIgnoreBreakpoints(bool ignore) {
79*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetIgnoreBreakpoints, (bool),
80*0b57cec5SDimitry Andric                      ignore);
81*0b57cec5SDimitry Andric 
82*0b57cec5SDimitry Andric   m_opaque_up->SetIgnoreBreakpoints(ignore);
83*0b57cec5SDimitry Andric }
84*0b57cec5SDimitry Andric 
GetFetchDynamicValue() const85*0b57cec5SDimitry Andric lldb::DynamicValueType SBExpressionOptions::GetFetchDynamicValue() const {
86*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_CONST_NO_ARGS(lldb::DynamicValueType, SBExpressionOptions,
87*0b57cec5SDimitry Andric                                    GetFetchDynamicValue);
88*0b57cec5SDimitry Andric 
89*0b57cec5SDimitry Andric   return m_opaque_up->GetUseDynamic();
90*0b57cec5SDimitry Andric }
91*0b57cec5SDimitry Andric 
SetFetchDynamicValue(lldb::DynamicValueType dynamic)92*0b57cec5SDimitry Andric void SBExpressionOptions::SetFetchDynamicValue(lldb::DynamicValueType dynamic) {
93*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetFetchDynamicValue,
94*0b57cec5SDimitry Andric                      (lldb::DynamicValueType), dynamic);
95*0b57cec5SDimitry Andric 
96*0b57cec5SDimitry Andric   m_opaque_up->SetUseDynamic(dynamic);
97*0b57cec5SDimitry Andric }
98*0b57cec5SDimitry Andric 
GetTimeoutInMicroSeconds() const99*0b57cec5SDimitry Andric uint32_t SBExpressionOptions::GetTimeoutInMicroSeconds() const {
100*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_CONST_NO_ARGS(uint32_t, SBExpressionOptions,
101*0b57cec5SDimitry Andric                                    GetTimeoutInMicroSeconds);
102*0b57cec5SDimitry Andric 
103*0b57cec5SDimitry Andric   return m_opaque_up->GetTimeout() ? m_opaque_up->GetTimeout()->count() : 0;
104*0b57cec5SDimitry Andric }
105*0b57cec5SDimitry Andric 
SetTimeoutInMicroSeconds(uint32_t timeout)106*0b57cec5SDimitry Andric void SBExpressionOptions::SetTimeoutInMicroSeconds(uint32_t timeout) {
107*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetTimeoutInMicroSeconds,
108*0b57cec5SDimitry Andric                      (uint32_t), timeout);
109*0b57cec5SDimitry Andric 
110*0b57cec5SDimitry Andric   m_opaque_up->SetTimeout(timeout == 0 ? Timeout<std::micro>(llvm::None)
111*0b57cec5SDimitry Andric                                        : std::chrono::microseconds(timeout));
112*0b57cec5SDimitry Andric }
113*0b57cec5SDimitry Andric 
GetOneThreadTimeoutInMicroSeconds() const114*0b57cec5SDimitry Andric uint32_t SBExpressionOptions::GetOneThreadTimeoutInMicroSeconds() const {
115*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_CONST_NO_ARGS(uint32_t, SBExpressionOptions,
116*0b57cec5SDimitry Andric                                    GetOneThreadTimeoutInMicroSeconds);
117*0b57cec5SDimitry Andric 
118*0b57cec5SDimitry Andric   return m_opaque_up->GetOneThreadTimeout()
119*0b57cec5SDimitry Andric              ? m_opaque_up->GetOneThreadTimeout()->count()
120*0b57cec5SDimitry Andric              : 0;
121*0b57cec5SDimitry Andric }
122*0b57cec5SDimitry Andric 
SetOneThreadTimeoutInMicroSeconds(uint32_t timeout)123*0b57cec5SDimitry Andric void SBExpressionOptions::SetOneThreadTimeoutInMicroSeconds(uint32_t timeout) {
124*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions,
125*0b57cec5SDimitry Andric                      SetOneThreadTimeoutInMicroSeconds, (uint32_t), timeout);
126*0b57cec5SDimitry Andric 
127*0b57cec5SDimitry Andric   m_opaque_up->SetOneThreadTimeout(timeout == 0
128*0b57cec5SDimitry Andric                                        ? Timeout<std::micro>(llvm::None)
129*0b57cec5SDimitry Andric                                        : std::chrono::microseconds(timeout));
130*0b57cec5SDimitry Andric }
131*0b57cec5SDimitry Andric 
GetTryAllThreads() const132*0b57cec5SDimitry Andric bool SBExpressionOptions::GetTryAllThreads() const {
133*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBExpressionOptions, GetTryAllThreads);
134*0b57cec5SDimitry Andric 
135*0b57cec5SDimitry Andric   return m_opaque_up->GetTryAllThreads();
136*0b57cec5SDimitry Andric }
137*0b57cec5SDimitry Andric 
SetTryAllThreads(bool run_others)138*0b57cec5SDimitry Andric void SBExpressionOptions::SetTryAllThreads(bool run_others) {
139*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetTryAllThreads, (bool),
140*0b57cec5SDimitry Andric                      run_others);
141*0b57cec5SDimitry Andric 
142*0b57cec5SDimitry Andric   m_opaque_up->SetTryAllThreads(run_others);
143*0b57cec5SDimitry Andric }
144*0b57cec5SDimitry Andric 
GetStopOthers() const145*0b57cec5SDimitry Andric bool SBExpressionOptions::GetStopOthers() const {
146*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBExpressionOptions, GetStopOthers);
147*0b57cec5SDimitry Andric 
148*0b57cec5SDimitry Andric   return m_opaque_up->GetStopOthers();
149*0b57cec5SDimitry Andric }
150*0b57cec5SDimitry Andric 
SetStopOthers(bool run_others)151*0b57cec5SDimitry Andric void SBExpressionOptions::SetStopOthers(bool run_others) {
152*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetStopOthers, (bool),
153*0b57cec5SDimitry Andric                      run_others);
154*0b57cec5SDimitry Andric 
155*0b57cec5SDimitry Andric   m_opaque_up->SetStopOthers(run_others);
156*0b57cec5SDimitry Andric }
157*0b57cec5SDimitry Andric 
GetTrapExceptions() const158*0b57cec5SDimitry Andric bool SBExpressionOptions::GetTrapExceptions() const {
159*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBExpressionOptions,
160*0b57cec5SDimitry Andric                                    GetTrapExceptions);
161*0b57cec5SDimitry Andric 
162*0b57cec5SDimitry Andric   return m_opaque_up->GetTrapExceptions();
163*0b57cec5SDimitry Andric }
164*0b57cec5SDimitry Andric 
SetTrapExceptions(bool trap_exceptions)165*0b57cec5SDimitry Andric void SBExpressionOptions::SetTrapExceptions(bool trap_exceptions) {
166*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetTrapExceptions, (bool),
167*0b57cec5SDimitry Andric                      trap_exceptions);
168*0b57cec5SDimitry Andric 
169*0b57cec5SDimitry Andric   m_opaque_up->SetTrapExceptions(trap_exceptions);
170*0b57cec5SDimitry Andric }
171*0b57cec5SDimitry Andric 
SetLanguage(lldb::LanguageType language)172*0b57cec5SDimitry Andric void SBExpressionOptions::SetLanguage(lldb::LanguageType language) {
173*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetLanguage,
174*0b57cec5SDimitry Andric                      (lldb::LanguageType), language);
175*0b57cec5SDimitry Andric 
176*0b57cec5SDimitry Andric   m_opaque_up->SetLanguage(language);
177*0b57cec5SDimitry Andric }
178*0b57cec5SDimitry Andric 
SetCancelCallback(lldb::ExpressionCancelCallback callback,void * baton)179*0b57cec5SDimitry Andric void SBExpressionOptions::SetCancelCallback(
180*0b57cec5SDimitry Andric     lldb::ExpressionCancelCallback callback, void *baton) {
181*0b57cec5SDimitry Andric   LLDB_RECORD_DUMMY(void, SBExpressionOptions, SetCancelCallback,
182*0b57cec5SDimitry Andric                     (lldb::ExpressionCancelCallback, void *), callback, baton);
183*0b57cec5SDimitry Andric 
184*0b57cec5SDimitry Andric   m_opaque_up->SetCancelCallback(callback, baton);
185*0b57cec5SDimitry Andric }
186*0b57cec5SDimitry Andric 
GetGenerateDebugInfo()187*0b57cec5SDimitry Andric bool SBExpressionOptions::GetGenerateDebugInfo() {
188*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_NO_ARGS(bool, SBExpressionOptions, GetGenerateDebugInfo);
189*0b57cec5SDimitry Andric 
190*0b57cec5SDimitry Andric   return m_opaque_up->GetGenerateDebugInfo();
191*0b57cec5SDimitry Andric }
192*0b57cec5SDimitry Andric 
SetGenerateDebugInfo(bool b)193*0b57cec5SDimitry Andric void SBExpressionOptions::SetGenerateDebugInfo(bool b) {
194*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetGenerateDebugInfo, (bool),
195*0b57cec5SDimitry Andric                      b);
196*0b57cec5SDimitry Andric 
197*0b57cec5SDimitry Andric   return m_opaque_up->SetGenerateDebugInfo(b);
198*0b57cec5SDimitry Andric }
199*0b57cec5SDimitry Andric 
GetSuppressPersistentResult()200*0b57cec5SDimitry Andric bool SBExpressionOptions::GetSuppressPersistentResult() {
201*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_NO_ARGS(bool, SBExpressionOptions,
202*0b57cec5SDimitry Andric                              GetSuppressPersistentResult);
203*0b57cec5SDimitry Andric 
204*0b57cec5SDimitry Andric   return m_opaque_up->GetResultIsInternal();
205*0b57cec5SDimitry Andric }
206*0b57cec5SDimitry Andric 
SetSuppressPersistentResult(bool b)207*0b57cec5SDimitry Andric void SBExpressionOptions::SetSuppressPersistentResult(bool b) {
208*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetSuppressPersistentResult,
209*0b57cec5SDimitry Andric                      (bool), b);
210*0b57cec5SDimitry Andric 
211*0b57cec5SDimitry Andric   return m_opaque_up->SetResultIsInternal(b);
212*0b57cec5SDimitry Andric }
213*0b57cec5SDimitry Andric 
GetPrefix() const214*0b57cec5SDimitry Andric const char *SBExpressionOptions::GetPrefix() const {
215*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_CONST_NO_ARGS(const char *, SBExpressionOptions,
216*0b57cec5SDimitry Andric                                    GetPrefix);
217*0b57cec5SDimitry Andric 
218*0b57cec5SDimitry Andric   return m_opaque_up->GetPrefix();
219*0b57cec5SDimitry Andric }
220*0b57cec5SDimitry Andric 
SetPrefix(const char * prefix)221*0b57cec5SDimitry Andric void SBExpressionOptions::SetPrefix(const char *prefix) {
222*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetPrefix, (const char *),
223*0b57cec5SDimitry Andric                      prefix);
224*0b57cec5SDimitry Andric 
225*0b57cec5SDimitry Andric   return m_opaque_up->SetPrefix(prefix);
226*0b57cec5SDimitry Andric }
227*0b57cec5SDimitry Andric 
GetAutoApplyFixIts()228*0b57cec5SDimitry Andric bool SBExpressionOptions::GetAutoApplyFixIts() {
229*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_NO_ARGS(bool, SBExpressionOptions, GetAutoApplyFixIts);
230*0b57cec5SDimitry Andric 
231*0b57cec5SDimitry Andric   return m_opaque_up->GetAutoApplyFixIts();
232*0b57cec5SDimitry Andric }
233*0b57cec5SDimitry Andric 
SetAutoApplyFixIts(bool b)234*0b57cec5SDimitry Andric void SBExpressionOptions::SetAutoApplyFixIts(bool b) {
235*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetAutoApplyFixIts, (bool), b);
236*0b57cec5SDimitry Andric 
237*0b57cec5SDimitry Andric   return m_opaque_up->SetAutoApplyFixIts(b);
238*0b57cec5SDimitry Andric }
239*0b57cec5SDimitry Andric 
GetRetriesWithFixIts()240*0b57cec5SDimitry Andric uint64_t SBExpressionOptions::GetRetriesWithFixIts() {
241*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_NO_ARGS(uint64_t, SBExpressionOptions,
242*0b57cec5SDimitry Andric                              GetRetriesWithFixIts);
243*0b57cec5SDimitry Andric 
244*0b57cec5SDimitry Andric   return m_opaque_up->GetRetriesWithFixIts();
245*0b57cec5SDimitry Andric }
246*0b57cec5SDimitry Andric 
SetRetriesWithFixIts(uint64_t retries)247*0b57cec5SDimitry Andric void SBExpressionOptions::SetRetriesWithFixIts(uint64_t retries) {
248*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetRetriesWithFixIts,
249*0b57cec5SDimitry Andric                      (uint64_t), retries);
250*0b57cec5SDimitry Andric 
251*0b57cec5SDimitry Andric   return m_opaque_up->SetRetriesWithFixIts(retries);
252*0b57cec5SDimitry Andric }
253*0b57cec5SDimitry Andric 
GetTopLevel()254*0b57cec5SDimitry Andric bool SBExpressionOptions::GetTopLevel() {
255*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_NO_ARGS(bool, SBExpressionOptions, GetTopLevel);
256*0b57cec5SDimitry Andric 
257*0b57cec5SDimitry Andric   return m_opaque_up->GetExecutionPolicy() == eExecutionPolicyTopLevel;
258*0b57cec5SDimitry Andric }
259*0b57cec5SDimitry Andric 
SetTopLevel(bool b)260*0b57cec5SDimitry Andric void SBExpressionOptions::SetTopLevel(bool b) {
261*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetTopLevel, (bool), b);
262*0b57cec5SDimitry Andric 
263*0b57cec5SDimitry Andric   m_opaque_up->SetExecutionPolicy(b ? eExecutionPolicyTopLevel
264*0b57cec5SDimitry Andric                                     : m_opaque_up->default_execution_policy);
265*0b57cec5SDimitry Andric }
266*0b57cec5SDimitry Andric 
GetAllowJIT()267*0b57cec5SDimitry Andric bool SBExpressionOptions::GetAllowJIT() {
268*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD_NO_ARGS(bool, SBExpressionOptions, GetAllowJIT);
269*0b57cec5SDimitry Andric 
270*0b57cec5SDimitry Andric   return m_opaque_up->GetExecutionPolicy() != eExecutionPolicyNever;
271*0b57cec5SDimitry Andric }
272*0b57cec5SDimitry Andric 
SetAllowJIT(bool allow)273*0b57cec5SDimitry Andric void SBExpressionOptions::SetAllowJIT(bool allow) {
274*0b57cec5SDimitry Andric   LLDB_RECORD_METHOD(void, SBExpressionOptions, SetAllowJIT, (bool), allow);
275*0b57cec5SDimitry Andric 
276*0b57cec5SDimitry Andric   m_opaque_up->SetExecutionPolicy(allow ? m_opaque_up->default_execution_policy
277*0b57cec5SDimitry Andric                                         : eExecutionPolicyNever);
278*0b57cec5SDimitry Andric }
279*0b57cec5SDimitry Andric 
get() const280*0b57cec5SDimitry Andric EvaluateExpressionOptions *SBExpressionOptions::get() const {
281*0b57cec5SDimitry Andric   return m_opaque_up.get();
282*0b57cec5SDimitry Andric }
283*0b57cec5SDimitry Andric 
ref() const284*0b57cec5SDimitry Andric EvaluateExpressionOptions &SBExpressionOptions::ref() const {
285*0b57cec5SDimitry Andric   return *(m_opaque_up.get());
286*0b57cec5SDimitry Andric }
287*0b57cec5SDimitry Andric 
288*0b57cec5SDimitry Andric namespace lldb_private {
289*0b57cec5SDimitry Andric namespace repro {
290*0b57cec5SDimitry Andric 
291*0b57cec5SDimitry Andric template <>
RegisterMethods(Registry & R)292*0b57cec5SDimitry Andric void RegisterMethods<SBExpressionOptions>(Registry &R) {
293*0b57cec5SDimitry Andric   LLDB_REGISTER_CONSTRUCTOR(SBExpressionOptions, ());
294*0b57cec5SDimitry Andric   LLDB_REGISTER_CONSTRUCTOR(SBExpressionOptions,
295*0b57cec5SDimitry Andric                             (const lldb::SBExpressionOptions &));
296*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(
297*0b57cec5SDimitry Andric       const lldb::SBExpressionOptions &,
298*0b57cec5SDimitry Andric       SBExpressionOptions, operator=,(const lldb::SBExpressionOptions &));
299*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD_CONST(bool, SBExpressionOptions, GetCoerceResultToId,
300*0b57cec5SDimitry Andric                              ());
301*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetCoerceResultToId,
302*0b57cec5SDimitry Andric                        (bool));
303*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD_CONST(bool, SBExpressionOptions, GetUnwindOnError, ());
304*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetUnwindOnError, (bool));
305*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD_CONST(bool, SBExpressionOptions, GetIgnoreBreakpoints,
306*0b57cec5SDimitry Andric                              ());
307*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetIgnoreBreakpoints,
308*0b57cec5SDimitry Andric                        (bool));
309*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD_CONST(lldb::DynamicValueType, SBExpressionOptions,
310*0b57cec5SDimitry Andric                              GetFetchDynamicValue, ());
311*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetFetchDynamicValue,
312*0b57cec5SDimitry Andric                        (lldb::DynamicValueType));
313*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD_CONST(uint32_t, SBExpressionOptions,
314*0b57cec5SDimitry Andric                              GetTimeoutInMicroSeconds, ());
315*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetTimeoutInMicroSeconds,
316*0b57cec5SDimitry Andric                        (uint32_t));
317*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD_CONST(uint32_t, SBExpressionOptions,
318*0b57cec5SDimitry Andric                              GetOneThreadTimeoutInMicroSeconds, ());
319*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(void, SBExpressionOptions,
320*0b57cec5SDimitry Andric                        SetOneThreadTimeoutInMicroSeconds, (uint32_t));
321*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD_CONST(bool, SBExpressionOptions, GetTryAllThreads, ());
322*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetTryAllThreads, (bool));
323*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD_CONST(bool, SBExpressionOptions, GetStopOthers, ());
324*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetStopOthers, (bool));
325*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD_CONST(bool, SBExpressionOptions, GetTrapExceptions,
326*0b57cec5SDimitry Andric                              ());
327*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetTrapExceptions, (bool));
328*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetLanguage,
329*0b57cec5SDimitry Andric                        (lldb::LanguageType));
330*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(bool, SBExpressionOptions, GetGenerateDebugInfo, ());
331*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetGenerateDebugInfo,
332*0b57cec5SDimitry Andric                        (bool));
333*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(bool, SBExpressionOptions, GetSuppressPersistentResult,
334*0b57cec5SDimitry Andric                        ());
335*0b57cec5SDimitry Andric   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetSuppressPersistentResult,
336*0b57cec5SDimitry Andric                        (bool));
337   LLDB_REGISTER_METHOD_CONST(const char *, SBExpressionOptions, GetPrefix,
338                              ());
339   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetPrefix, (const char *));
340   LLDB_REGISTER_METHOD(bool, SBExpressionOptions, GetAutoApplyFixIts, ());
341   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetAutoApplyFixIts, (bool));
342   LLDB_REGISTER_METHOD(bool, SBExpressionOptions, GetTopLevel, ());
343   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetTopLevel, (bool));
344   LLDB_REGISTER_METHOD(bool, SBExpressionOptions, GetAllowJIT, ());
345   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetAllowJIT, (bool));
346   LLDB_REGISTER_METHOD(uint64_t, SBExpressionOptions, GetRetriesWithFixIts, ());
347   LLDB_REGISTER_METHOD(void, SBExpressionOptions, SetRetriesWithFixIts,
348                        (uint64_t));
349 }
350 
351 }
352 }
353