1*b9c1b51eSKate Stone //===-- SBExpressionOptions.cpp ---------------------------------------------*- 2*b9c1b51eSKate Stone //C++ -*-===// 335e1bda6SJim Ingham // 435e1bda6SJim Ingham // The LLVM Compiler Infrastructure 535e1bda6SJim Ingham // 635e1bda6SJim Ingham // This file is distributed under the University of Illinois Open Source 735e1bda6SJim Ingham // License. See LICENSE.TXT for details. 835e1bda6SJim Ingham // 935e1bda6SJim Ingham //===----------------------------------------------------------------------===// 1035e1bda6SJim Ingham 1135e1bda6SJim Ingham #include "lldb/API/SBExpressionOptions.h" 1235e1bda6SJim Ingham #include "lldb/API/SBStream.h" 1335e1bda6SJim Ingham 1435e1bda6SJim Ingham #include "lldb/Target/Target.h" 1535e1bda6SJim Ingham 1635e1bda6SJim Ingham using namespace lldb; 1735e1bda6SJim Ingham using namespace lldb_private; 1835e1bda6SJim Ingham 19*b9c1b51eSKate Stone SBExpressionOptions::SBExpressionOptions() 20*b9c1b51eSKate Stone : m_opaque_ap(new EvaluateExpressionOptions()) {} 2135e1bda6SJim Ingham 22*b9c1b51eSKate Stone SBExpressionOptions::SBExpressionOptions(const SBExpressionOptions &rhs) { 2335e1bda6SJim Ingham m_opaque_ap.reset(new EvaluateExpressionOptions()); 2435e1bda6SJim Ingham *(m_opaque_ap.get()) = rhs.ref(); 2535e1bda6SJim Ingham } 2635e1bda6SJim Ingham 27*b9c1b51eSKate Stone const SBExpressionOptions &SBExpressionOptions:: 28*b9c1b51eSKate Stone operator=(const SBExpressionOptions &rhs) { 29*b9c1b51eSKate Stone if (this != &rhs) { 3035e1bda6SJim Ingham this->ref() = rhs.ref(); 3135e1bda6SJim Ingham } 3235e1bda6SJim Ingham return *this; 3335e1bda6SJim Ingham } 3435e1bda6SJim Ingham 35*b9c1b51eSKate Stone SBExpressionOptions::~SBExpressionOptions() {} 3635e1bda6SJim Ingham 37*b9c1b51eSKate Stone bool SBExpressionOptions::GetCoerceResultToId() const { 3835e1bda6SJim Ingham return m_opaque_ap->DoesCoerceToId(); 3935e1bda6SJim Ingham } 4035e1bda6SJim Ingham 41*b9c1b51eSKate Stone void SBExpressionOptions::SetCoerceResultToId(bool coerce) { 4235e1bda6SJim Ingham m_opaque_ap->SetCoerceToId(coerce); 4335e1bda6SJim Ingham } 4435e1bda6SJim Ingham 45*b9c1b51eSKate Stone bool SBExpressionOptions::GetUnwindOnError() const { 4635e1bda6SJim Ingham return m_opaque_ap->DoesUnwindOnError(); 4735e1bda6SJim Ingham } 4835e1bda6SJim Ingham 49*b9c1b51eSKate Stone void SBExpressionOptions::SetUnwindOnError(bool unwind) { 5035e1bda6SJim Ingham m_opaque_ap->SetUnwindOnError(unwind); 5135e1bda6SJim Ingham } 5235e1bda6SJim Ingham 53*b9c1b51eSKate Stone bool SBExpressionOptions::GetIgnoreBreakpoints() const { 54184e9811SJim Ingham return m_opaque_ap->DoesIgnoreBreakpoints(); 55184e9811SJim Ingham } 56184e9811SJim Ingham 57*b9c1b51eSKate Stone void SBExpressionOptions::SetIgnoreBreakpoints(bool ignore) { 58184e9811SJim Ingham m_opaque_ap->SetIgnoreBreakpoints(ignore); 59184e9811SJim Ingham } 60184e9811SJim Ingham 61*b9c1b51eSKate Stone lldb::DynamicValueType SBExpressionOptions::GetFetchDynamicValue() const { 6235e1bda6SJim Ingham return m_opaque_ap->GetUseDynamic(); 6335e1bda6SJim Ingham } 6435e1bda6SJim Ingham 65*b9c1b51eSKate Stone void SBExpressionOptions::SetFetchDynamicValue(lldb::DynamicValueType dynamic) { 6635e1bda6SJim Ingham m_opaque_ap->SetUseDynamic(dynamic); 6735e1bda6SJim Ingham } 6835e1bda6SJim Ingham 69*b9c1b51eSKate Stone uint32_t SBExpressionOptions::GetTimeoutInMicroSeconds() const { 7035e1bda6SJim Ingham return m_opaque_ap->GetTimeoutUsec(); 7135e1bda6SJim Ingham } 7235e1bda6SJim Ingham 73*b9c1b51eSKate Stone void SBExpressionOptions::SetTimeoutInMicroSeconds(uint32_t timeout) { 7435e1bda6SJim Ingham m_opaque_ap->SetTimeoutUsec(timeout); 7535e1bda6SJim Ingham } 7635e1bda6SJim Ingham 77*b9c1b51eSKate Stone uint32_t SBExpressionOptions::GetOneThreadTimeoutInMicroSeconds() const { 78914f4e70SJim Ingham return m_opaque_ap->GetOneThreadTimeoutUsec(); 79914f4e70SJim Ingham } 80914f4e70SJim Ingham 81*b9c1b51eSKate Stone void SBExpressionOptions::SetOneThreadTimeoutInMicroSeconds(uint32_t timeout) { 82914f4e70SJim Ingham m_opaque_ap->SetOneThreadTimeoutUsec(timeout); 83914f4e70SJim Ingham } 84914f4e70SJim Ingham 85*b9c1b51eSKate Stone bool SBExpressionOptions::GetTryAllThreads() const { 866fbc48bcSJim Ingham return m_opaque_ap->GetTryAllThreads(); 8735e1bda6SJim Ingham } 8835e1bda6SJim Ingham 89*b9c1b51eSKate Stone void SBExpressionOptions::SetTryAllThreads(bool run_others) { 906fbc48bcSJim Ingham m_opaque_ap->SetTryAllThreads(run_others); 916fbc48bcSJim Ingham } 926fbc48bcSJim Ingham 93*b9c1b51eSKate Stone bool SBExpressionOptions::GetStopOthers() const { 94286fb1efSJim Ingham return m_opaque_ap->GetStopOthers(); 95286fb1efSJim Ingham } 96286fb1efSJim Ingham 97*b9c1b51eSKate Stone void SBExpressionOptions::SetStopOthers(bool run_others) { 98286fb1efSJim Ingham m_opaque_ap->SetStopOthers(run_others); 99286fb1efSJim Ingham } 100286fb1efSJim Ingham 101*b9c1b51eSKate Stone bool SBExpressionOptions::GetTrapExceptions() const { 1026fbc48bcSJim Ingham return m_opaque_ap->GetTrapExceptions(); 1036fbc48bcSJim Ingham } 1046fbc48bcSJim Ingham 105*b9c1b51eSKate Stone void SBExpressionOptions::SetTrapExceptions(bool trap_exceptions) { 1066fbc48bcSJim Ingham m_opaque_ap->SetTrapExceptions(trap_exceptions); 10735e1bda6SJim Ingham } 10835e1bda6SJim Ingham 109*b9c1b51eSKate Stone void SBExpressionOptions::SetLanguage(lldb::LanguageType language) { 110705b1809SJason Molenda m_opaque_ap->SetLanguage(language); 111705b1809SJason Molenda } 112705b1809SJason Molenda 113*b9c1b51eSKate Stone void SBExpressionOptions::SetCancelCallback( 114*b9c1b51eSKate Stone lldb::ExpressionCancelCallback callback, void *baton) { 1151624a2d3SJim Ingham m_opaque_ap->SetCancelCallback(callback, baton); 1161624a2d3SJim Ingham } 1171624a2d3SJim Ingham 118*b9c1b51eSKate Stone bool SBExpressionOptions::GetGenerateDebugInfo() { 119205ca1e8SGreg Clayton return m_opaque_ap->GetGenerateDebugInfo(); 120205ca1e8SGreg Clayton } 121205ca1e8SGreg Clayton 122*b9c1b51eSKate Stone void SBExpressionOptions::SetGenerateDebugInfo(bool b) { 123205ca1e8SGreg Clayton return m_opaque_ap->SetGenerateDebugInfo(b); 124205ca1e8SGreg Clayton } 125205ca1e8SGreg Clayton 126*b9c1b51eSKate Stone bool SBExpressionOptions::GetSuppressPersistentResult() { 1277ab079b6SJim Ingham return m_opaque_ap->GetResultIsInternal(); 1287ab079b6SJim Ingham } 1297ab079b6SJim Ingham 130*b9c1b51eSKate Stone void SBExpressionOptions::SetSuppressPersistentResult(bool b) { 1317ab079b6SJim Ingham return m_opaque_ap->SetResultIsInternal(b); 1327ab079b6SJim Ingham } 1337ab079b6SJim Ingham 134*b9c1b51eSKate Stone const char *SBExpressionOptions::GetPrefix() const { 1354e1042e1SGreg Clayton return m_opaque_ap->GetPrefix(); 1364e1042e1SGreg Clayton } 1374e1042e1SGreg Clayton 138*b9c1b51eSKate Stone void SBExpressionOptions::SetPrefix(const char *prefix) { 1394e1042e1SGreg Clayton return m_opaque_ap->SetPrefix(prefix); 1404e1042e1SGreg Clayton } 1417ab079b6SJim Ingham 142*b9c1b51eSKate Stone bool SBExpressionOptions::GetAutoApplyFixIts() { 143a1e541bfSJim Ingham return m_opaque_ap->GetAutoApplyFixIts(); 144a1e541bfSJim Ingham } 145a1e541bfSJim Ingham 146*b9c1b51eSKate Stone void SBExpressionOptions::SetAutoApplyFixIts(bool b) { 147a1e541bfSJim Ingham return m_opaque_ap->SetAutoApplyFixIts(b); 148a1e541bfSJim Ingham } 149a1e541bfSJim Ingham 150*b9c1b51eSKate Stone bool SBExpressionOptions::GetTopLevel() { 151863fab69SSean Callanan return m_opaque_ap->GetExecutionPolicy() == eExecutionPolicyTopLevel; 152863fab69SSean Callanan } 153863fab69SSean Callanan 154*b9c1b51eSKate Stone void SBExpressionOptions::SetTopLevel(bool b) { 155*b9c1b51eSKate Stone m_opaque_ap->SetExecutionPolicy(b ? eExecutionPolicyTopLevel 156*b9c1b51eSKate Stone : m_opaque_ap->default_execution_policy); 157863fab69SSean Callanan } 158863fab69SSean Callanan 159*b9c1b51eSKate Stone EvaluateExpressionOptions *SBExpressionOptions::get() const { 16035e1bda6SJim Ingham return m_opaque_ap.get(); 16135e1bda6SJim Ingham } 16235e1bda6SJim Ingham 163*b9c1b51eSKate Stone EvaluateExpressionOptions &SBExpressionOptions::ref() const { 16435e1bda6SJim Ingham return *(m_opaque_ap.get()); 16535e1bda6SJim Ingham } 166