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