LLDB mainline
SBExpressionOptions.h
Go to the documentation of this file.
1//===-- SBExpressionOptions.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_API_SBEXPRESSIONOPTIONS_H
10#define LLDB_API_SBEXPRESSIONOPTIONS_H
11
12#include "lldb/API/SBDefines.h"
13
14#include <vector>
15
16namespace lldb {
17
19public:
21
23
25
26 const SBExpressionOptions &operator=(const lldb::SBExpressionOptions &rhs);
27
28 bool GetCoerceResultToId() const;
29
30 void SetCoerceResultToId(bool coerce = true);
31
32 bool GetUnwindOnError() const;
33
34 void SetUnwindOnError(bool unwind = true);
35
36 bool GetIgnoreBreakpoints() const;
37
38 void SetIgnoreBreakpoints(bool ignore = true);
39
40 lldb::DynamicValueType GetFetchDynamicValue() const;
41
42 void SetFetchDynamicValue(
44
45 uint32_t GetTimeoutInMicroSeconds() const;
46
47 // Set the timeout for the expression, 0 means wait forever.
48 void SetTimeoutInMicroSeconds(uint32_t timeout = 0);
49
50 uint32_t GetOneThreadTimeoutInMicroSeconds() const;
51
52 // Set the timeout for running on one thread, 0 means use the default
53 // behavior. If you set this higher than the overall timeout, you'll get an
54 // error when you try to run the expression.
55 void SetOneThreadTimeoutInMicroSeconds(uint32_t timeout = 0);
56
57 bool GetTryAllThreads() const;
58
59 void SetTryAllThreads(bool run_others = true);
60
61 bool GetStopOthers() const;
62
63 void SetStopOthers(bool stop_others = true);
64
65 bool GetTrapExceptions() const;
66
67 void SetTrapExceptions(bool trap_exceptions = true);
68
69 void SetLanguage(lldb::LanguageType language);
70
71#ifndef SWIG
72 void SetCancelCallback(lldb::ExpressionCancelCallback callback, void *baton);
73#endif
74
75 bool GetGenerateDebugInfo();
76
77 void SetGenerateDebugInfo(bool b = true);
78
79 bool GetSuppressPersistentResult();
80
81 void SetSuppressPersistentResult(bool b = false);
82
83 const char *GetPrefix() const;
84
85 void SetPrefix(const char *prefix);
86
87 void SetAutoApplyFixIts(bool b = true);
88
89 bool GetAutoApplyFixIts();
90
91 void SetRetriesWithFixIts(uint64_t retries);
92
93 uint64_t GetRetriesWithFixIts();
94
95 bool GetTopLevel();
96
97 void SetTopLevel(bool b = true);
98
99 // Gets whether we will JIT an expression if it cannot be interpreted
100 bool GetAllowJIT();
101
102 // Sets whether we will JIT an expression if it cannot be interpreted
103 void SetAllowJIT(bool allow);
104
105protected:
107
109
110 friend class SBFrame;
111 friend class SBValue;
112 friend class SBTarget;
113
114private:
115 // This auto_pointer is made in the constructor and is always valid.
116 mutable std::unique_ptr<lldb_private::EvaluateExpressionOptions> m_opaque_up;
117};
118
119} // namespace lldb
120
121#endif // LLDB_API_SBEXPRESSIONOPTIONS_H
#define LLDB_API
Definition: SBDefines.h:28
std::unique_ptr< lldb_private::EvaluateExpressionOptions > m_opaque_up
Definition: SBAddress.h:15
LanguageType
Programming language type.
bool(* ExpressionCancelCallback)(ExpressionEvaluationPhase phase, void *baton)
Definition: lldb-types.h:74
@ eDynamicCanRunTarget