diff options
Diffstat (limited to 'contrib/llvm-project/lldb/source/API/SBExpressionOptions.cpp')
-rw-r--r-- | contrib/llvm-project/lldb/source/API/SBExpressionOptions.cpp | 265 |
1 files changed, 265 insertions, 0 deletions
diff --git a/contrib/llvm-project/lldb/source/API/SBExpressionOptions.cpp b/contrib/llvm-project/lldb/source/API/SBExpressionOptions.cpp new file mode 100644 index 000000000000..15ed403eaaea --- /dev/null +++ b/contrib/llvm-project/lldb/source/API/SBExpressionOptions.cpp @@ -0,0 +1,265 @@ +//===-- SBExpressionOptions.cpp -------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "lldb/API/SBExpressionOptions.h" +#include "Utils.h" +#include "lldb/API/SBStream.h" +#include "lldb/Target/Target.h" +#include "lldb/Utility/Instrumentation.h" + +using namespace lldb; +using namespace lldb_private; + +SBExpressionOptions::SBExpressionOptions() + : m_opaque_up(new EvaluateExpressionOptions()) { + LLDB_INSTRUMENT_VA(this); +} + +SBExpressionOptions::SBExpressionOptions(const SBExpressionOptions &rhs) { + LLDB_INSTRUMENT_VA(this, rhs); + + m_opaque_up = clone(rhs.m_opaque_up); +} + +const SBExpressionOptions &SBExpressionOptions:: +operator=(const SBExpressionOptions &rhs) { + LLDB_INSTRUMENT_VA(this, rhs); + + if (this != &rhs) + m_opaque_up = clone(rhs.m_opaque_up); + return *this; +} + +SBExpressionOptions::~SBExpressionOptions() = default; + +bool SBExpressionOptions::GetCoerceResultToId() const { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->DoesCoerceToId(); +} + +void SBExpressionOptions::SetCoerceResultToId(bool coerce) { + LLDB_INSTRUMENT_VA(this, coerce); + + m_opaque_up->SetCoerceToId(coerce); +} + +bool SBExpressionOptions::GetUnwindOnError() const { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->DoesUnwindOnError(); +} + +void SBExpressionOptions::SetUnwindOnError(bool unwind) { + LLDB_INSTRUMENT_VA(this, unwind); + + m_opaque_up->SetUnwindOnError(unwind); +} + +bool SBExpressionOptions::GetIgnoreBreakpoints() const { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->DoesIgnoreBreakpoints(); +} + +void SBExpressionOptions::SetIgnoreBreakpoints(bool ignore) { + LLDB_INSTRUMENT_VA(this, ignore); + + m_opaque_up->SetIgnoreBreakpoints(ignore); +} + +lldb::DynamicValueType SBExpressionOptions::GetFetchDynamicValue() const { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->GetUseDynamic(); +} + +void SBExpressionOptions::SetFetchDynamicValue(lldb::DynamicValueType dynamic) { + LLDB_INSTRUMENT_VA(this, dynamic); + + m_opaque_up->SetUseDynamic(dynamic); +} + +uint32_t SBExpressionOptions::GetTimeoutInMicroSeconds() const { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->GetTimeout() ? m_opaque_up->GetTimeout()->count() : 0; +} + +void SBExpressionOptions::SetTimeoutInMicroSeconds(uint32_t timeout) { + LLDB_INSTRUMENT_VA(this, timeout); + + m_opaque_up->SetTimeout(timeout == 0 ? Timeout<std::micro>(std::nullopt) + : std::chrono::microseconds(timeout)); +} + +uint32_t SBExpressionOptions::GetOneThreadTimeoutInMicroSeconds() const { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->GetOneThreadTimeout() + ? m_opaque_up->GetOneThreadTimeout()->count() + : 0; +} + +void SBExpressionOptions::SetOneThreadTimeoutInMicroSeconds(uint32_t timeout) { + LLDB_INSTRUMENT_VA(this, timeout); + + m_opaque_up->SetOneThreadTimeout(timeout == 0 + ? Timeout<std::micro>(std::nullopt) + : std::chrono::microseconds(timeout)); +} + +bool SBExpressionOptions::GetTryAllThreads() const { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->GetTryAllThreads(); +} + +void SBExpressionOptions::SetTryAllThreads(bool run_others) { + LLDB_INSTRUMENT_VA(this, run_others); + + m_opaque_up->SetTryAllThreads(run_others); +} + +bool SBExpressionOptions::GetStopOthers() const { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->GetStopOthers(); +} + +void SBExpressionOptions::SetStopOthers(bool run_others) { + LLDB_INSTRUMENT_VA(this, run_others); + + m_opaque_up->SetStopOthers(run_others); +} + +bool SBExpressionOptions::GetTrapExceptions() const { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->GetTrapExceptions(); +} + +void SBExpressionOptions::SetTrapExceptions(bool trap_exceptions) { + LLDB_INSTRUMENT_VA(this, trap_exceptions); + + m_opaque_up->SetTrapExceptions(trap_exceptions); +} + +void SBExpressionOptions::SetLanguage(lldb::LanguageType language) { + LLDB_INSTRUMENT_VA(this, language); + + m_opaque_up->SetLanguage(language); +} + +void SBExpressionOptions::SetLanguage(lldb::SBSourceLanguageName name, + uint32_t version) { + LLDB_INSTRUMENT_VA(this, name, version); + + m_opaque_up->SetLanguage(name, version); +} + +void SBExpressionOptions::SetCancelCallback( + lldb::ExpressionCancelCallback callback, void *baton) { + LLDB_INSTRUMENT_VA(this, callback, baton); + + m_opaque_up->SetCancelCallback(callback, baton); +} + +bool SBExpressionOptions::GetGenerateDebugInfo() { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->GetGenerateDebugInfo(); +} + +void SBExpressionOptions::SetGenerateDebugInfo(bool b) { + LLDB_INSTRUMENT_VA(this, b); + + return m_opaque_up->SetGenerateDebugInfo(b); +} + +bool SBExpressionOptions::GetSuppressPersistentResult() { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->GetSuppressPersistentResult(); +} + +void SBExpressionOptions::SetSuppressPersistentResult(bool b) { + LLDB_INSTRUMENT_VA(this, b); + + return m_opaque_up->SetSuppressPersistentResult(b); +} + +const char *SBExpressionOptions::GetPrefix() const { + LLDB_INSTRUMENT_VA(this); + + return ConstString(m_opaque_up->GetPrefix()).GetCString(); +} + +void SBExpressionOptions::SetPrefix(const char *prefix) { + LLDB_INSTRUMENT_VA(this, prefix); + + return m_opaque_up->SetPrefix(prefix); +} + +bool SBExpressionOptions::GetAutoApplyFixIts() { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->GetAutoApplyFixIts(); +} + +void SBExpressionOptions::SetAutoApplyFixIts(bool b) { + LLDB_INSTRUMENT_VA(this, b); + + return m_opaque_up->SetAutoApplyFixIts(b); +} + +uint64_t SBExpressionOptions::GetRetriesWithFixIts() { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->GetRetriesWithFixIts(); +} + +void SBExpressionOptions::SetRetriesWithFixIts(uint64_t retries) { + LLDB_INSTRUMENT_VA(this, retries); + + return m_opaque_up->SetRetriesWithFixIts(retries); +} + +bool SBExpressionOptions::GetTopLevel() { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->GetExecutionPolicy() == eExecutionPolicyTopLevel; +} + +void SBExpressionOptions::SetTopLevel(bool b) { + LLDB_INSTRUMENT_VA(this, b); + + m_opaque_up->SetExecutionPolicy(b ? eExecutionPolicyTopLevel + : m_opaque_up->default_execution_policy); +} + +bool SBExpressionOptions::GetAllowJIT() { + LLDB_INSTRUMENT_VA(this); + + return m_opaque_up->GetExecutionPolicy() != eExecutionPolicyNever; +} + +void SBExpressionOptions::SetAllowJIT(bool allow) { + LLDB_INSTRUMENT_VA(this, allow); + + m_opaque_up->SetExecutionPolicy(allow ? m_opaque_up->default_execution_policy + : eExecutionPolicyNever); +} + +EvaluateExpressionOptions *SBExpressionOptions::get() const { + return m_opaque_up.get(); +} + +EvaluateExpressionOptions &SBExpressionOptions::ref() const { + return *m_opaque_up; +} |