brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.1 KiB · 989d159 Raw
219 lines · cpp
1//===-- SBVariablesOptions.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/SBVariablesOptions.h"10#include "lldb/API/SBTarget.h"11#include "lldb/Target/Target.h"12#include "lldb/Utility/Instrumentation.h"13 14#include "lldb/lldb-private.h"15 16using namespace lldb;17using namespace lldb_private;18 19class VariablesOptionsImpl {20public:21  VariablesOptionsImpl()22      : m_include_arguments(false), m_include_locals(false),23        m_include_statics(false), m_in_scope_only(false),24        m_include_runtime_support_values(false) {}25 26  VariablesOptionsImpl(const VariablesOptionsImpl &) = default;27 28  ~VariablesOptionsImpl() = default;29 30  VariablesOptionsImpl &operator=(const VariablesOptionsImpl &) = default;31 32  bool GetIncludeArguments() const { return m_include_arguments; }33 34  void SetIncludeArguments(bool b) { m_include_arguments = b; }35 36  bool GetIncludeRecognizedArguments(const lldb::TargetSP &target_sp) const {37    if (m_include_recognized_arguments != eLazyBoolCalculate)38        return m_include_recognized_arguments;39    return target_sp ? target_sp->GetDisplayRecognizedArguments() : false;40  }41 42  void SetIncludeRecognizedArguments(bool b) {43    m_include_recognized_arguments = b ? eLazyBoolYes : eLazyBoolNo;44  }45 46  bool GetIncludeLocals() const { return m_include_locals; }47 48  void SetIncludeLocals(bool b) { m_include_locals = b; }49 50  bool GetIncludeStatics() const { return m_include_statics; }51 52  void SetIncludeStatics(bool b) { m_include_statics = b; }53 54  bool GetInScopeOnly() const { return m_in_scope_only; }55 56  void SetInScopeOnly(bool b) { m_in_scope_only = b; }57 58  bool GetIncludeRuntimeSupportValues() const {59    return m_include_runtime_support_values;60  }61 62  void SetIncludeRuntimeSupportValues(bool b) {63    m_include_runtime_support_values = b;64  }65 66  lldb::DynamicValueType GetUseDynamic() const { return m_use_dynamic; }67 68  void SetUseDynamic(lldb::DynamicValueType d) { m_use_dynamic = d; }69 70private:71  bool m_include_arguments : 1;72  bool m_include_locals : 1;73  bool m_include_statics : 1;74  bool m_in_scope_only : 1;75  bool m_include_runtime_support_values : 1;76  LazyBool m_include_recognized_arguments =77      eLazyBoolCalculate; // can be overridden with a setting78  lldb::DynamicValueType m_use_dynamic = lldb::eNoDynamicValues;79};80 81SBVariablesOptions::SBVariablesOptions()82    : m_opaque_up(new VariablesOptionsImpl()) {83  LLDB_INSTRUMENT_VA(this);84}85 86SBVariablesOptions::SBVariablesOptions(const SBVariablesOptions &options)87    : m_opaque_up(new VariablesOptionsImpl(options.ref())) {88  LLDB_INSTRUMENT_VA(this, options);89}90 91SBVariablesOptions &SBVariablesOptions::92operator=(const SBVariablesOptions &options) {93  LLDB_INSTRUMENT_VA(this, options);94 95  m_opaque_up = std::make_unique<VariablesOptionsImpl>(options.ref());96  return *this;97}98 99SBVariablesOptions::~SBVariablesOptions() = default;100 101bool SBVariablesOptions::IsValid() const {102  LLDB_INSTRUMENT_VA(this);103  return this->operator bool();104}105SBVariablesOptions::operator bool() const {106  LLDB_INSTRUMENT_VA(this);107 108  return m_opaque_up != nullptr;109}110 111bool SBVariablesOptions::GetIncludeArguments() const {112  LLDB_INSTRUMENT_VA(this);113 114  return m_opaque_up->GetIncludeArguments();115}116 117void SBVariablesOptions::SetIncludeArguments(bool arguments) {118  LLDB_INSTRUMENT_VA(this, arguments);119 120  m_opaque_up->SetIncludeArguments(arguments);121}122 123bool SBVariablesOptions::GetIncludeRecognizedArguments(124    const lldb::SBTarget &target) const {125  LLDB_INSTRUMENT_VA(this, target);126 127  return m_opaque_up->GetIncludeRecognizedArguments(target.GetSP());128}129 130void SBVariablesOptions::SetIncludeRecognizedArguments(bool arguments) {131  LLDB_INSTRUMENT_VA(this, arguments);132 133  m_opaque_up->SetIncludeRecognizedArguments(arguments);134}135 136bool SBVariablesOptions::GetIncludeLocals() const {137  LLDB_INSTRUMENT_VA(this);138 139  return m_opaque_up->GetIncludeLocals();140}141 142void SBVariablesOptions::SetIncludeLocals(bool locals) {143  LLDB_INSTRUMENT_VA(this, locals);144 145  m_opaque_up->SetIncludeLocals(locals);146}147 148bool SBVariablesOptions::GetIncludeStatics() const {149  LLDB_INSTRUMENT_VA(this);150 151  return m_opaque_up->GetIncludeStatics();152}153 154void SBVariablesOptions::SetIncludeStatics(bool statics) {155  LLDB_INSTRUMENT_VA(this, statics);156 157  m_opaque_up->SetIncludeStatics(statics);158}159 160bool SBVariablesOptions::GetInScopeOnly() const {161  LLDB_INSTRUMENT_VA(this);162 163  return m_opaque_up->GetInScopeOnly();164}165 166void SBVariablesOptions::SetInScopeOnly(bool in_scope_only) {167  LLDB_INSTRUMENT_VA(this, in_scope_only);168 169  m_opaque_up->SetInScopeOnly(in_scope_only);170}171 172bool SBVariablesOptions::GetIncludeRuntimeSupportValues() const {173  LLDB_INSTRUMENT_VA(this);174 175  return m_opaque_up->GetIncludeRuntimeSupportValues();176}177 178void SBVariablesOptions::SetIncludeRuntimeSupportValues(179    bool runtime_support_values) {180  LLDB_INSTRUMENT_VA(this, runtime_support_values);181 182  m_opaque_up->SetIncludeRuntimeSupportValues(runtime_support_values);183}184 185lldb::DynamicValueType SBVariablesOptions::GetUseDynamic() const {186  LLDB_INSTRUMENT_VA(this);187 188  return m_opaque_up->GetUseDynamic();189}190 191void SBVariablesOptions::SetUseDynamic(lldb::DynamicValueType dynamic) {192  LLDB_INSTRUMENT_VA(this, dynamic);193 194  m_opaque_up->SetUseDynamic(dynamic);195}196 197VariablesOptionsImpl *SBVariablesOptions::operator->() {198  return m_opaque_up.operator->();199}200 201const VariablesOptionsImpl *SBVariablesOptions::operator->() const {202  return m_opaque_up.operator->();203}204 205VariablesOptionsImpl *SBVariablesOptions::get() { return m_opaque_up.get(); }206 207VariablesOptionsImpl &SBVariablesOptions::ref() { return *m_opaque_up; }208 209const VariablesOptionsImpl &SBVariablesOptions::ref() const {210  return *m_opaque_up;211}212 213SBVariablesOptions::SBVariablesOptions(VariablesOptionsImpl *lldb_object_ptr)214    : m_opaque_up(std::move(lldb_object_ptr)) {}215 216void SBVariablesOptions::SetOptions(VariablesOptionsImpl *lldb_object_ptr) {217  m_opaque_up.reset(std::move(lldb_object_ptr));218}219