brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.8 KiB · 15ed403 Raw
266 lines · cpp
1//===-- SBExpressionOptions.cpp -------------------------------------------===//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "lldb/API/SBExpressionOptions.h"10#include "Utils.h"11#include "lldb/API/SBStream.h"12#include "lldb/Target/Target.h"13#include "lldb/Utility/Instrumentation.h"14 15using namespace lldb;16using namespace lldb_private;17 18SBExpressionOptions::SBExpressionOptions()19    : m_opaque_up(new EvaluateExpressionOptions()) {20  LLDB_INSTRUMENT_VA(this);21}22 23SBExpressionOptions::SBExpressionOptions(const SBExpressionOptions &rhs) {24  LLDB_INSTRUMENT_VA(this, rhs);25 26  m_opaque_up = clone(rhs.m_opaque_up);27}28 29const SBExpressionOptions &SBExpressionOptions::30operator=(const SBExpressionOptions &rhs) {31  LLDB_INSTRUMENT_VA(this, rhs);32 33  if (this != &rhs)34    m_opaque_up = clone(rhs.m_opaque_up);35  return *this;36}37 38SBExpressionOptions::~SBExpressionOptions() = default;39 40bool SBExpressionOptions::GetCoerceResultToId() const {41  LLDB_INSTRUMENT_VA(this);42 43  return m_opaque_up->DoesCoerceToId();44}45 46void SBExpressionOptions::SetCoerceResultToId(bool coerce) {47  LLDB_INSTRUMENT_VA(this, coerce);48 49  m_opaque_up->SetCoerceToId(coerce);50}51 52bool SBExpressionOptions::GetUnwindOnError() const {53  LLDB_INSTRUMENT_VA(this);54 55  return m_opaque_up->DoesUnwindOnError();56}57 58void SBExpressionOptions::SetUnwindOnError(bool unwind) {59  LLDB_INSTRUMENT_VA(this, unwind);60 61  m_opaque_up->SetUnwindOnError(unwind);62}63 64bool SBExpressionOptions::GetIgnoreBreakpoints() const {65  LLDB_INSTRUMENT_VA(this);66 67  return m_opaque_up->DoesIgnoreBreakpoints();68}69 70void SBExpressionOptions::SetIgnoreBreakpoints(bool ignore) {71  LLDB_INSTRUMENT_VA(this, ignore);72 73  m_opaque_up->SetIgnoreBreakpoints(ignore);74}75 76lldb::DynamicValueType SBExpressionOptions::GetFetchDynamicValue() const {77  LLDB_INSTRUMENT_VA(this);78 79  return m_opaque_up->GetUseDynamic();80}81 82void SBExpressionOptions::SetFetchDynamicValue(lldb::DynamicValueType dynamic) {83  LLDB_INSTRUMENT_VA(this, dynamic);84 85  m_opaque_up->SetUseDynamic(dynamic);86}87 88uint32_t SBExpressionOptions::GetTimeoutInMicroSeconds() const {89  LLDB_INSTRUMENT_VA(this);90 91  return m_opaque_up->GetTimeout() ? m_opaque_up->GetTimeout()->count() : 0;92}93 94void SBExpressionOptions::SetTimeoutInMicroSeconds(uint32_t timeout) {95  LLDB_INSTRUMENT_VA(this, timeout);96 97  m_opaque_up->SetTimeout(timeout == 0 ? Timeout<std::micro>(std::nullopt)98                                       : std::chrono::microseconds(timeout));99}100 101uint32_t SBExpressionOptions::GetOneThreadTimeoutInMicroSeconds() const {102  LLDB_INSTRUMENT_VA(this);103 104  return m_opaque_up->GetOneThreadTimeout()105             ? m_opaque_up->GetOneThreadTimeout()->count()106             : 0;107}108 109void SBExpressionOptions::SetOneThreadTimeoutInMicroSeconds(uint32_t timeout) {110  LLDB_INSTRUMENT_VA(this, timeout);111 112  m_opaque_up->SetOneThreadTimeout(timeout == 0113                                       ? Timeout<std::micro>(std::nullopt)114                                       : std::chrono::microseconds(timeout));115}116 117bool SBExpressionOptions::GetTryAllThreads() const {118  LLDB_INSTRUMENT_VA(this);119 120  return m_opaque_up->GetTryAllThreads();121}122 123void SBExpressionOptions::SetTryAllThreads(bool run_others) {124  LLDB_INSTRUMENT_VA(this, run_others);125 126  m_opaque_up->SetTryAllThreads(run_others);127}128 129bool SBExpressionOptions::GetStopOthers() const {130  LLDB_INSTRUMENT_VA(this);131 132  return m_opaque_up->GetStopOthers();133}134 135void SBExpressionOptions::SetStopOthers(bool run_others) {136  LLDB_INSTRUMENT_VA(this, run_others);137 138  m_opaque_up->SetStopOthers(run_others);139}140 141bool SBExpressionOptions::GetTrapExceptions() const {142  LLDB_INSTRUMENT_VA(this);143 144  return m_opaque_up->GetTrapExceptions();145}146 147void SBExpressionOptions::SetTrapExceptions(bool trap_exceptions) {148  LLDB_INSTRUMENT_VA(this, trap_exceptions);149 150  m_opaque_up->SetTrapExceptions(trap_exceptions);151}152 153void SBExpressionOptions::SetLanguage(lldb::LanguageType language) {154  LLDB_INSTRUMENT_VA(this, language);155 156  m_opaque_up->SetLanguage(language);157}158 159void SBExpressionOptions::SetLanguage(lldb::SBSourceLanguageName name,160                                      uint32_t version) {161  LLDB_INSTRUMENT_VA(this, name, version);162 163  m_opaque_up->SetLanguage(name, version);164}165 166void SBExpressionOptions::SetCancelCallback(167    lldb::ExpressionCancelCallback callback, void *baton) {168  LLDB_INSTRUMENT_VA(this, callback, baton);169 170  m_opaque_up->SetCancelCallback(callback, baton);171}172 173bool SBExpressionOptions::GetGenerateDebugInfo() {174  LLDB_INSTRUMENT_VA(this);175 176  return m_opaque_up->GetGenerateDebugInfo();177}178 179void SBExpressionOptions::SetGenerateDebugInfo(bool b) {180  LLDB_INSTRUMENT_VA(this, b);181 182  return m_opaque_up->SetGenerateDebugInfo(b);183}184 185bool SBExpressionOptions::GetSuppressPersistentResult() {186  LLDB_INSTRUMENT_VA(this);187 188  return m_opaque_up->GetSuppressPersistentResult();189}190 191void SBExpressionOptions::SetSuppressPersistentResult(bool b) {192  LLDB_INSTRUMENT_VA(this, b);193 194  return m_opaque_up->SetSuppressPersistentResult(b);195}196 197const char *SBExpressionOptions::GetPrefix() const {198  LLDB_INSTRUMENT_VA(this);199 200  return ConstString(m_opaque_up->GetPrefix()).GetCString();201}202 203void SBExpressionOptions::SetPrefix(const char *prefix) {204  LLDB_INSTRUMENT_VA(this, prefix);205 206  return m_opaque_up->SetPrefix(prefix);207}208 209bool SBExpressionOptions::GetAutoApplyFixIts() {210  LLDB_INSTRUMENT_VA(this);211 212  return m_opaque_up->GetAutoApplyFixIts();213}214 215void SBExpressionOptions::SetAutoApplyFixIts(bool b) {216  LLDB_INSTRUMENT_VA(this, b);217 218  return m_opaque_up->SetAutoApplyFixIts(b);219}220 221uint64_t SBExpressionOptions::GetRetriesWithFixIts() {222  LLDB_INSTRUMENT_VA(this);223 224  return m_opaque_up->GetRetriesWithFixIts();225}226 227void SBExpressionOptions::SetRetriesWithFixIts(uint64_t retries) {228  LLDB_INSTRUMENT_VA(this, retries);229 230  return m_opaque_up->SetRetriesWithFixIts(retries);231}232 233bool SBExpressionOptions::GetTopLevel() {234  LLDB_INSTRUMENT_VA(this);235 236  return m_opaque_up->GetExecutionPolicy() == eExecutionPolicyTopLevel;237}238 239void SBExpressionOptions::SetTopLevel(bool b) {240  LLDB_INSTRUMENT_VA(this, b);241 242  m_opaque_up->SetExecutionPolicy(b ? eExecutionPolicyTopLevel243                                    : m_opaque_up->default_execution_policy);244}245 246bool SBExpressionOptions::GetAllowJIT() {247  LLDB_INSTRUMENT_VA(this);248 249  return m_opaque_up->GetExecutionPolicy() != eExecutionPolicyNever;250}251 252void SBExpressionOptions::SetAllowJIT(bool allow) {253  LLDB_INSTRUMENT_VA(this, allow);254 255  m_opaque_up->SetExecutionPolicy(allow ? m_opaque_up->default_execution_policy256                                        : eExecutionPolicyNever);257}258 259EvaluateExpressionOptions *SBExpressionOptions::get() const {260  return m_opaque_up.get();261}262 263EvaluateExpressionOptions &SBExpressionOptions::ref() const {264  return *m_opaque_up;265}266