Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:42:42

0001 //===-- SBExpressionOptions.h -----------------------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLDB_API_SBEXPRESSIONOPTIONS_H
0010 #define LLDB_API_SBEXPRESSIONOPTIONS_H
0011 
0012 #include "lldb/API/SBDefines.h"
0013 #include "lldb/API/SBLanguages.h"
0014 
0015 #include <vector>
0016 
0017 namespace lldb {
0018 
0019 class LLDB_API SBExpressionOptions {
0020 public:
0021   SBExpressionOptions();
0022 
0023   SBExpressionOptions(const lldb::SBExpressionOptions &rhs);
0024 
0025   ~SBExpressionOptions();
0026 
0027   const SBExpressionOptions &operator=(const lldb::SBExpressionOptions &rhs);
0028 
0029   bool GetCoerceResultToId() const;
0030 
0031   void SetCoerceResultToId(bool coerce = true);
0032 
0033   bool GetUnwindOnError() const;
0034 
0035   void SetUnwindOnError(bool unwind = true);
0036 
0037   bool GetIgnoreBreakpoints() const;
0038 
0039   void SetIgnoreBreakpoints(bool ignore = true);
0040 
0041   lldb::DynamicValueType GetFetchDynamicValue() const;
0042 
0043   void SetFetchDynamicValue(
0044       lldb::DynamicValueType dynamic = lldb::eDynamicCanRunTarget);
0045 
0046   uint32_t GetTimeoutInMicroSeconds() const;
0047 
0048   // Set the timeout for the expression, 0 means wait forever.
0049   void SetTimeoutInMicroSeconds(uint32_t timeout = 0);
0050 
0051   uint32_t GetOneThreadTimeoutInMicroSeconds() const;
0052 
0053   // Set the timeout for running on one thread, 0 means use the default
0054   // behavior. If you set this higher than the overall timeout, you'll get an
0055   // error when you try to run the expression.
0056   void SetOneThreadTimeoutInMicroSeconds(uint32_t timeout = 0);
0057 
0058   bool GetTryAllThreads() const;
0059 
0060   void SetTryAllThreads(bool run_others = true);
0061 
0062   bool GetStopOthers() const;
0063 
0064   void SetStopOthers(bool stop_others = true);
0065 
0066   bool GetTrapExceptions() const;
0067 
0068   void SetTrapExceptions(bool trap_exceptions = true);
0069 
0070   void SetLanguage(lldb::LanguageType language);
0071   /// Set the language using a pair of language code and version as
0072   /// defined by the DWARF 6 specification.
0073   /// WARNING: These codes may change until DWARF 6 is finalized.
0074   void SetLanguage(lldb::SBSourceLanguageName name, uint32_t version);
0075 
0076 #ifndef SWIG
0077   void SetCancelCallback(lldb::ExpressionCancelCallback callback, void *baton);
0078 #endif
0079 
0080   bool GetGenerateDebugInfo();
0081 
0082   void SetGenerateDebugInfo(bool b = true);
0083 
0084   bool GetSuppressPersistentResult();
0085 
0086   void SetSuppressPersistentResult(bool b = false);
0087 
0088   const char *GetPrefix() const;
0089 
0090   void SetPrefix(const char *prefix);
0091 
0092   void SetAutoApplyFixIts(bool b = true);
0093 
0094   bool GetAutoApplyFixIts();
0095 
0096   void SetRetriesWithFixIts(uint64_t retries);
0097 
0098   uint64_t GetRetriesWithFixIts();
0099 
0100   bool GetTopLevel();
0101 
0102   void SetTopLevel(bool b = true);
0103 
0104   // Gets whether we will JIT an expression if it cannot be interpreted
0105   bool GetAllowJIT();
0106 
0107   // Sets whether we will JIT an expression if it cannot be interpreted
0108   void SetAllowJIT(bool allow);
0109 
0110 protected:
0111   lldb_private::EvaluateExpressionOptions *get() const;
0112 
0113   lldb_private::EvaluateExpressionOptions &ref() const;
0114 
0115   friend class SBFrame;
0116   friend class SBValue;
0117   friend class SBTarget;
0118 
0119 private:
0120   // This auto_pointer is made in the constructor and is always valid.
0121   mutable std::unique_ptr<lldb_private::EvaluateExpressionOptions> m_opaque_up;
0122 };
0123 
0124 } // namespace lldb
0125 
0126 #endif // LLDB_API_SBEXPRESSIONOPTIONS_H