//===-- SBEvent.h -----------------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef LLDB_SBExpressionOptions_h_ #define LLDB_SBExpressionOptions_h_ #include "lldb/API/SBDefines.h" #include namespace lldb { class LLDB_API SBExpressionOptions { public: SBExpressionOptions(); SBExpressionOptions(const lldb::SBExpressionOptions &rhs); ~SBExpressionOptions(); const SBExpressionOptions &operator=(const lldb::SBExpressionOptions &rhs); bool GetCoerceResultToId() const; void SetCoerceResultToId(bool coerce = true); bool GetUnwindOnError() const; void SetUnwindOnError(bool unwind = true); bool GetIgnoreBreakpoints() const; void SetIgnoreBreakpoints(bool ignore = true); lldb::DynamicValueType GetFetchDynamicValue() const; void SetFetchDynamicValue( lldb::DynamicValueType dynamic = lldb::eDynamicCanRunTarget); uint32_t GetTimeoutInMicroSeconds() const; // Set the timeout for the expression, 0 means wait forever. void SetTimeoutInMicroSeconds(uint32_t timeout = 0); uint32_t GetOneThreadTimeoutInMicroSeconds() const; // Set the timeout for running on one thread, 0 means use the default // behavior. // If you set this higher than the overall timeout, you'll get an error when // you // try to run the expression. void SetOneThreadTimeoutInMicroSeconds(uint32_t timeout = 0); bool GetTryAllThreads() const; void SetTryAllThreads(bool run_others = true); bool GetStopOthers() const; void SetStopOthers(bool stop_others = true); bool GetTrapExceptions() const; void SetTrapExceptions(bool trap_exceptions = true); void SetLanguage(lldb::LanguageType language); void SetCancelCallback(lldb::ExpressionCancelCallback callback, void *baton); bool GetGenerateDebugInfo(); void SetGenerateDebugInfo(bool b = true); bool GetSuppressPersistentResult(); void SetSuppressPersistentResult(bool b = false); const char *GetPrefix() const; void SetPrefix(const char *prefix); void SetAutoApplyFixIts(bool b = true); bool GetAutoApplyFixIts(); bool GetTopLevel(); void SetTopLevel(bool b = true); protected: SBExpressionOptions( lldb_private::EvaluateExpressionOptions &expression_options); lldb_private::EvaluateExpressionOptions *get() const; lldb_private::EvaluateExpressionOptions &ref() const; friend class SBFrame; friend class SBValue; friend class SBTarget; private: // This auto_pointer is made in the constructor and is always valid. mutable std::unique_ptr m_opaque_ap; }; } // namespace lldb #endif // LLDB_SBExpressionOptions_h_