1 //===-- SWIG interface for SBExpressionOptions -----------------------------------------------*- 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 namespace lldb { 10 11 %feature("docstring", 12 "A container for options to use when evaluating expressions." 13 ) SBExpressionOptions; 14 15 class SBExpressionOptions 16 { 17 friend class SBFrame; 18 friend class SBValue; 19 20 public: 21 SBExpressionOptions(); 22 23 SBExpressionOptions (const lldb::SBExpressionOptions &rhs); 24 25 ~SBExpressionOptions(); 26 27 bool 28 GetCoerceResultToId () const; 29 30 %feature("docstring", "Sets whether to coerce the expression result to ObjC id type after evaluation.") SetCoerceResultToId; 31 32 void 33 SetCoerceResultToId (bool coerce = true); 34 35 bool 36 GetUnwindOnError () const; 37 38 %feature("docstring", "Sets whether to unwind the expression stack on error.") SetUnwindOnError; 39 40 void 41 SetUnwindOnError (bool unwind = true); 42 43 bool 44 GetIgnoreBreakpoints () const; 45 46 %feature("docstring", "Sets whether to ignore breakpoint hits while running expressions.") SetUnwindOnError; 47 48 void 49 SetIgnoreBreakpoints (bool ignore = true); 50 51 lldb::DynamicValueType 52 GetFetchDynamicValue () const; 53 54 %feature("docstring", "Sets whether to cast the expression result to its dynamic type.") SetFetchDynamicValue; 55 56 void 57 SetFetchDynamicValue (lldb::DynamicValueType dynamic = lldb::eDynamicCanRunTarget); 58 59 uint32_t 60 GetTimeoutInMicroSeconds () const; 61 62 %feature("docstring", "Sets the timeout in microseconds to run the expression for. If try all threads is set to true and the expression doesn't complete within the specified timeout, all threads will be resumed for the same timeout to see if the expression will finish.") SetTimeoutInMicroSeconds; 63 void 64 SetTimeoutInMicroSeconds (uint32_t timeout = 0); 65 66 uint32_t 67 GetOneThreadTimeoutInMicroSeconds () const; 68 69 %feature("docstring", "Sets the timeout in microseconds to run the expression on one thread before either timing out or trying all threads.") SetTimeoutInMicroSeconds; 70 void 71 SetOneThreadTimeoutInMicroSeconds (uint32_t timeout = 0); 72 73 bool 74 GetTryAllThreads () const; 75 76 %feature("docstring", "Sets whether to run all threads if the expression does not complete on one thread.") SetTryAllThreads; 77 void 78 SetTryAllThreads (bool run_others = true); 79 80 bool 81 GetStopOthers () const; 82 83 %feature("docstring", "Sets whether to stop other threads at all while running expressions. If false, TryAllThreads does nothing.") SetTryAllThreads; 84 void 85 SetStopOthers (bool stop_others = true); 86 87 bool 88 GetTrapExceptions () const; 89 90 %feature("docstring", "Sets whether to abort expression evaluation if an exception is thrown while executing. Don't set this to false unless you know the function you are calling traps all exceptions itself.") SetTryAllThreads; 91 void 92 SetTrapExceptions (bool trap_exceptions = true); 93 94 %feature ("docstring", "Sets the language that LLDB should assume the expression is written in") SetLanguage; 95 void 96 SetLanguage (lldb::LanguageType language); 97 98 bool 99 GetGenerateDebugInfo (); 100 101 %feature("docstring", "Sets whether to generate debug information for the expression and also controls if a SBModule is generated.") SetGenerateDebugInfo; 102 void 103 SetGenerateDebugInfo (bool b = true); 104 105 bool 106 GetSuppressPersistentResult (); 107 108 %feature("docstring", "Sets whether to produce a persistent result that can be used in future expressions.") SetSuppressPersistentResult; 109 void 110 SetSuppressPersistentResult (bool b = false); 111 112 113 %feature("docstring", "Gets the prefix to use for this expression.") GetPrefix; 114 const char * 115 GetPrefix () const; 116 117 %feature("docstring", "Sets the prefix to use for this expression. This prefix gets inserted after the 'target.expr-prefix' prefix contents, but before the wrapped expression function body.") SetPrefix; 118 void 119 SetPrefix (const char *prefix); 120 121 %feature("docstring", "Sets whether to auto-apply fix-it hints to the expression being evaluated.") SetAutoApplyFixIts; 122 void 123 SetAutoApplyFixIts(bool b = true); 124 125 %feature("docstring", "Gets whether to auto-apply fix-it hints to an expression.") GetAutoApplyFixIts; 126 bool 127 GetAutoApplyFixIts(); 128 129 %feature("docstring", "Sets how often LLDB should retry applying fix-its to an expression.") SetRetriesWithFixIts; 130 void 131 SetRetriesWithFixIts(uint64_t retries); 132 133 %feature("docstring", "Gets how often LLDB will retry applying fix-its to an expression.") GetRetriesWithFixIts; 134 uint64_t 135 GetRetriesWithFixIts(); 136 137 bool 138 GetTopLevel(); 139 140 void 141 SetTopLevel(bool b = true); 142 143 %feature("docstring", "Gets whether to JIT an expression if it cannot be interpreted.") GetAllowJIT; 144 bool 145 GetAllowJIT(); 146 147 %feature("docstring", "Sets whether to JIT an expression if it cannot be interpreted.") SetAllowJIT; 148 void 149 SetAllowJIT(bool allow); 150 151 protected: 152 153 SBExpressionOptions (lldb_private::EvaluateExpressionOptions &expression_options); 154 155 lldb_private::EvaluateExpressionOptions * 156 get () const; 157 158 lldb_private::EvaluateExpressionOptions & 159 ref () const; 160 161 private: 162 // This auto_pointer is made in the constructor and is always valid. 163 mutable std::unique_ptr<lldb_private::EvaluateExpressionOptions> m_opaque_ap; 164 }; 165 166 } // namespace lldb 167