003 File Manager
Current Path:
/usr/src/contrib/llvm-project/lldb/source/Interpreter
usr
/
src
/
contrib
/
llvm-project
/
lldb
/
source
/
Interpreter
/
📁
..
📄
CommandAlias.cpp
(7.86 KB)
📄
CommandHistory.cpp
(3 KB)
📄
CommandInterpreter.cpp
(115 KB)
📄
CommandObject.cpp
(51.13 KB)
📄
CommandObjectRegexCommand.cpp
(3.78 KB)
📄
CommandObjectScript.cpp
(2.37 KB)
📄
CommandObjectScript.h
(966 B)
📄
CommandOptionValidators.cpp
(1.14 KB)
📄
CommandReturnObject.cpp
(5.06 KB)
📄
InterpreterProperties.td
(1.32 KB)
📄
OptionArgParser.cpp
(7.56 KB)
📄
OptionGroupArchitecture.cpp
(1.8 KB)
📄
OptionGroupBoolean.cpp
(2.22 KB)
📄
OptionGroupFile.cpp
(2.92 KB)
📄
OptionGroupFormat.cpp
(8.4 KB)
📄
OptionGroupOutputFile.cpp
(1.9 KB)
📄
OptionGroupPlatform.cpp
(4.6 KB)
📄
OptionGroupPythonClassWithDict.cpp
(5.51 KB)
📄
OptionGroupString.cpp
(1.88 KB)
📄
OptionGroupUInt64.cpp
(1.87 KB)
📄
OptionGroupUUID.cpp
(1.51 KB)
📄
OptionGroupValueObjectDisplay.cpp
(7.67 KB)
📄
OptionGroupVariable.cpp
(5.05 KB)
📄
OptionGroupWatchpoint.cpp
(3.19 KB)
📄
OptionValue.cpp
(17.49 KB)
📄
OptionValueArch.cpp
(2.39 KB)
📄
OptionValueArgs.cpp
(769 B)
📄
OptionValueArray.cpp
(9.99 KB)
📄
OptionValueBoolean.cpp
(2.8 KB)
📄
OptionValueChar.cpp
(1.85 KB)
📄
OptionValueDictionary.cpp
(10.06 KB)
📄
OptionValueEnumeration.cpp
(3.94 KB)
📄
OptionValueFileSpec.cpp
(4.28 KB)
📄
OptionValueFileSpecList.cpp
(5.38 KB)
📄
OptionValueFormat.cpp
(1.89 KB)
📄
OptionValueFormatEntity.cpp
(4.02 KB)
📄
OptionValueLanguage.cpp
(2.53 KB)
📄
OptionValuePathMappings.cpp
(6.95 KB)
📄
OptionValueProperties.cpp
(22.56 KB)
📄
OptionValueRegex.cpp
(1.95 KB)
📄
OptionValueSInt64.cpp
(2.48 KB)
📄
OptionValueString.cpp
(4.3 KB)
📄
OptionValueUInt64.cpp
(2.3 KB)
📄
OptionValueUUID.cpp
(2.66 KB)
📄
Options.cpp
(47.68 KB)
📄
Property.cpp
(11 KB)
📄
ScriptInterpreter.cpp
(7.53 KB)
📄
embedded_interpreter.py
(4.31 KB)
Editing: OptionValue.cpp
//===-- OptionValue.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/Interpreter/OptionValue.h" #include "lldb/Interpreter/OptionValues.h" #include "lldb/Utility/StringList.h" #include <memory> using namespace lldb; using namespace lldb_private; // Get this value as a uint64_t value if it is encoded as a boolean, uint64_t // or int64_t. Other types will cause "fail_value" to be returned uint64_t OptionValue::GetUInt64Value(uint64_t fail_value, bool *success_ptr) { if (success_ptr) *success_ptr = true; switch (GetType()) { case OptionValue::eTypeBoolean: return static_cast<OptionValueBoolean *>(this)->GetCurrentValue(); case OptionValue::eTypeSInt64: return static_cast<OptionValueSInt64 *>(this)->GetCurrentValue(); case OptionValue::eTypeUInt64: return static_cast<OptionValueUInt64 *>(this)->GetCurrentValue(); default: break; } if (success_ptr) *success_ptr = false; return fail_value; } Status OptionValue::SetSubValue(const ExecutionContext *exe_ctx, VarSetOperationType op, llvm::StringRef name, llvm::StringRef value) { Status error; error.SetErrorStringWithFormat("SetSubValue is not supported"); return error; } OptionValueBoolean *OptionValue::GetAsBoolean() { if (GetType() == OptionValue::eTypeBoolean) return static_cast<OptionValueBoolean *>(this); return nullptr; } const OptionValueBoolean *OptionValue::GetAsBoolean() const { if (GetType() == OptionValue::eTypeBoolean) return static_cast<const OptionValueBoolean *>(this); return nullptr; } const OptionValueChar *OptionValue::GetAsChar() const { if (GetType() == OptionValue::eTypeChar) return static_cast<const OptionValueChar *>(this); return nullptr; } OptionValueChar *OptionValue::GetAsChar() { if (GetType() == OptionValue::eTypeChar) return static_cast<OptionValueChar *>(this); return nullptr; } OptionValueFileSpec *OptionValue::GetAsFileSpec() { if (GetType() == OptionValue::eTypeFileSpec) return static_cast<OptionValueFileSpec *>(this); return nullptr; } const OptionValueFileSpec *OptionValue::GetAsFileSpec() const { if (GetType() == OptionValue::eTypeFileSpec) return static_cast<const OptionValueFileSpec *>(this); return nullptr; } OptionValueFileSpecList *OptionValue::GetAsFileSpecList() { if (GetType() == OptionValue::eTypeFileSpecList) return static_cast<OptionValueFileSpecList *>(this); return nullptr; } const OptionValueFileSpecList *OptionValue::GetAsFileSpecList() const { if (GetType() == OptionValue::eTypeFileSpecList) return static_cast<const OptionValueFileSpecList *>(this); return nullptr; } OptionValueArch *OptionValue::GetAsArch() { if (GetType() == OptionValue::eTypeArch) return static_cast<OptionValueArch *>(this); return nullptr; } const OptionValueArch *OptionValue::GetAsArch() const { if (GetType() == OptionValue::eTypeArch) return static_cast<const OptionValueArch *>(this); return nullptr; } OptionValueArray *OptionValue::GetAsArray() { if (GetType() == OptionValue::eTypeArray) return static_cast<OptionValueArray *>(this); return nullptr; } const OptionValueArray *OptionValue::GetAsArray() const { if (GetType() == OptionValue::eTypeArray) return static_cast<const OptionValueArray *>(this); return nullptr; } OptionValueArgs *OptionValue::GetAsArgs() { if (GetType() == OptionValue::eTypeArgs) return static_cast<OptionValueArgs *>(this); return nullptr; } const OptionValueArgs *OptionValue::GetAsArgs() const { if (GetType() == OptionValue::eTypeArgs) return static_cast<const OptionValueArgs *>(this); return nullptr; } OptionValueDictionary *OptionValue::GetAsDictionary() { if (GetType() == OptionValue::eTypeDictionary) return static_cast<OptionValueDictionary *>(this); return nullptr; } const OptionValueDictionary *OptionValue::GetAsDictionary() const { if (GetType() == OptionValue::eTypeDictionary) return static_cast<const OptionValueDictionary *>(this); return nullptr; } OptionValueEnumeration *OptionValue::GetAsEnumeration() { if (GetType() == OptionValue::eTypeEnum) return static_cast<OptionValueEnumeration *>(this); return nullptr; } const OptionValueEnumeration *OptionValue::GetAsEnumeration() const { if (GetType() == OptionValue::eTypeEnum) return static_cast<const OptionValueEnumeration *>(this); return nullptr; } OptionValueFormat *OptionValue::GetAsFormat() { if (GetType() == OptionValue::eTypeFormat) return static_cast<OptionValueFormat *>(this); return nullptr; } const OptionValueFormat *OptionValue::GetAsFormat() const { if (GetType() == OptionValue::eTypeFormat) return static_cast<const OptionValueFormat *>(this); return nullptr; } OptionValueLanguage *OptionValue::GetAsLanguage() { if (GetType() == OptionValue::eTypeLanguage) return static_cast<OptionValueLanguage *>(this); return nullptr; } const OptionValueLanguage *OptionValue::GetAsLanguage() const { if (GetType() == OptionValue::eTypeLanguage) return static_cast<const OptionValueLanguage *>(this); return nullptr; } OptionValueFormatEntity *OptionValue::GetAsFormatEntity() { if (GetType() == OptionValue::eTypeFormatEntity) return static_cast<OptionValueFormatEntity *>(this); return nullptr; } const OptionValueFormatEntity *OptionValue::GetAsFormatEntity() const { if (GetType() == OptionValue::eTypeFormatEntity) return static_cast<const OptionValueFormatEntity *>(this); return nullptr; } OptionValuePathMappings *OptionValue::GetAsPathMappings() { if (GetType() == OptionValue::eTypePathMap) return static_cast<OptionValuePathMappings *>(this); return nullptr; } const OptionValuePathMappings *OptionValue::GetAsPathMappings() const { if (GetType() == OptionValue::eTypePathMap) return static_cast<const OptionValuePathMappings *>(this); return nullptr; } OptionValueProperties *OptionValue::GetAsProperties() { if (GetType() == OptionValue::eTypeProperties) return static_cast<OptionValueProperties *>(this); return nullptr; } const OptionValueProperties *OptionValue::GetAsProperties() const { if (GetType() == OptionValue::eTypeProperties) return static_cast<const OptionValueProperties *>(this); return nullptr; } OptionValueRegex *OptionValue::GetAsRegex() { if (GetType() == OptionValue::eTypeRegex) return static_cast<OptionValueRegex *>(this); return nullptr; } const OptionValueRegex *OptionValue::GetAsRegex() const { if (GetType() == OptionValue::eTypeRegex) return static_cast<const OptionValueRegex *>(this); return nullptr; } OptionValueSInt64 *OptionValue::GetAsSInt64() { if (GetType() == OptionValue::eTypeSInt64) return static_cast<OptionValueSInt64 *>(this); return nullptr; } const OptionValueSInt64 *OptionValue::GetAsSInt64() const { if (GetType() == OptionValue::eTypeSInt64) return static_cast<const OptionValueSInt64 *>(this); return nullptr; } OptionValueString *OptionValue::GetAsString() { if (GetType() == OptionValue::eTypeString) return static_cast<OptionValueString *>(this); return nullptr; } const OptionValueString *OptionValue::GetAsString() const { if (GetType() == OptionValue::eTypeString) return static_cast<const OptionValueString *>(this); return nullptr; } OptionValueUInt64 *OptionValue::GetAsUInt64() { if (GetType() == OptionValue::eTypeUInt64) return static_cast<OptionValueUInt64 *>(this); return nullptr; } const OptionValueUInt64 *OptionValue::GetAsUInt64() const { if (GetType() == OptionValue::eTypeUInt64) return static_cast<const OptionValueUInt64 *>(this); return nullptr; } OptionValueUUID *OptionValue::GetAsUUID() { if (GetType() == OptionValue::eTypeUUID) return static_cast<OptionValueUUID *>(this); return nullptr; } const OptionValueUUID *OptionValue::GetAsUUID() const { if (GetType() == OptionValue::eTypeUUID) return static_cast<const OptionValueUUID *>(this); return nullptr; } bool OptionValue::GetBooleanValue(bool fail_value) const { const OptionValueBoolean *option_value = GetAsBoolean(); if (option_value) return option_value->GetCurrentValue(); return fail_value; } bool OptionValue::SetBooleanValue(bool new_value) { OptionValueBoolean *option_value = GetAsBoolean(); if (option_value) { option_value->SetCurrentValue(new_value); return true; } return false; } char OptionValue::GetCharValue(char fail_value) const { const OptionValueChar *option_value = GetAsChar(); if (option_value) return option_value->GetCurrentValue(); return fail_value; } char OptionValue::SetCharValue(char new_value) { OptionValueChar *option_value = GetAsChar(); if (option_value) { option_value->SetCurrentValue(new_value); return true; } return false; } int64_t OptionValue::GetEnumerationValue(int64_t fail_value) const { const OptionValueEnumeration *option_value = GetAsEnumeration(); if (option_value) return option_value->GetCurrentValue(); return fail_value; } bool OptionValue::SetEnumerationValue(int64_t value) { OptionValueEnumeration *option_value = GetAsEnumeration(); if (option_value) { option_value->SetCurrentValue(value); return true; } return false; } FileSpec OptionValue::GetFileSpecValue() const { const OptionValueFileSpec *option_value = GetAsFileSpec(); if (option_value) return option_value->GetCurrentValue(); return FileSpec(); } bool OptionValue::SetFileSpecValue(const FileSpec &file_spec) { OptionValueFileSpec *option_value = GetAsFileSpec(); if (option_value) { option_value->SetCurrentValue(file_spec, false); return true; } return false; } FileSpecList OptionValue::GetFileSpecListValue() const { const OptionValueFileSpecList *option_value = GetAsFileSpecList(); if (option_value) return option_value->GetCurrentValue(); return FileSpecList(); } lldb::Format OptionValue::GetFormatValue(lldb::Format fail_value) const { const OptionValueFormat *option_value = GetAsFormat(); if (option_value) return option_value->GetCurrentValue(); return fail_value; } bool OptionValue::SetFormatValue(lldb::Format new_value) { OptionValueFormat *option_value = GetAsFormat(); if (option_value) { option_value->SetCurrentValue(new_value); return true; } return false; } lldb::LanguageType OptionValue::GetLanguageValue(lldb::LanguageType fail_value) const { const OptionValueLanguage *option_value = GetAsLanguage(); if (option_value) return option_value->GetCurrentValue(); return fail_value; } bool OptionValue::SetLanguageValue(lldb::LanguageType new_language) { OptionValueLanguage *option_value = GetAsLanguage(); if (option_value) { option_value->SetCurrentValue(new_language); return true; } return false; } const FormatEntity::Entry *OptionValue::GetFormatEntity() const { const OptionValueFormatEntity *option_value = GetAsFormatEntity(); if (option_value) return &option_value->GetCurrentValue(); return nullptr; } const RegularExpression *OptionValue::GetRegexValue() const { const OptionValueRegex *option_value = GetAsRegex(); if (option_value) return option_value->GetCurrentValue(); return nullptr; } int64_t OptionValue::GetSInt64Value(int64_t fail_value) const { const OptionValueSInt64 *option_value = GetAsSInt64(); if (option_value) return option_value->GetCurrentValue(); return fail_value; } bool OptionValue::SetSInt64Value(int64_t new_value) { OptionValueSInt64 *option_value = GetAsSInt64(); if (option_value) { option_value->SetCurrentValue(new_value); return true; } return false; } llvm::StringRef OptionValue::GetStringValue(llvm::StringRef fail_value) const { const OptionValueString *option_value = GetAsString(); if (option_value) return option_value->GetCurrentValueAsRef(); return fail_value; } bool OptionValue::SetStringValue(llvm::StringRef new_value) { OptionValueString *option_value = GetAsString(); if (option_value) { option_value->SetCurrentValue(new_value); return true; } return false; } uint64_t OptionValue::GetUInt64Value(uint64_t fail_value) const { const OptionValueUInt64 *option_value = GetAsUInt64(); if (option_value) return option_value->GetCurrentValue(); return fail_value; } bool OptionValue::SetUInt64Value(uint64_t new_value) { OptionValueUInt64 *option_value = GetAsUInt64(); if (option_value) { option_value->SetCurrentValue(new_value); return true; } return false; } UUID OptionValue::GetUUIDValue() const { const OptionValueUUID *option_value = GetAsUUID(); if (option_value) return option_value->GetCurrentValue(); return UUID(); } bool OptionValue::SetUUIDValue(const UUID &uuid) { OptionValueUUID *option_value = GetAsUUID(); if (option_value) { option_value->SetCurrentValue(uuid); return true; } return false; } const char *OptionValue::GetBuiltinTypeAsCString(Type t) { switch (t) { case eTypeInvalid: return "invalid"; case eTypeArch: return "arch"; case eTypeArgs: return "arguments"; case eTypeArray: return "array"; case eTypeBoolean: return "boolean"; case eTypeChar: return "char"; case eTypeDictionary: return "dictionary"; case eTypeEnum: return "enum"; case eTypeFileSpec: return "file"; case eTypeFileSpecList: return "file-list"; case eTypeFormat: return "format"; case eTypeFormatEntity: return "format-string"; case eTypeLanguage: return "language"; case eTypePathMap: return "path-map"; case eTypeProperties: return "properties"; case eTypeRegex: return "regex"; case eTypeSInt64: return "int"; case eTypeString: return "string"; case eTypeUInt64: return "unsigned"; case eTypeUUID: return "uuid"; } return nullptr; } lldb::OptionValueSP OptionValue::CreateValueFromCStringForTypeMask( const char *value_cstr, uint32_t type_mask, Status &error) { // If only 1 bit is set in the type mask for a dictionary or array then we // know how to decode a value from a cstring lldb::OptionValueSP value_sp; switch (type_mask) { case 1u << eTypeArch: value_sp = std::make_shared<OptionValueArch>(); break; case 1u << eTypeBoolean: value_sp = std::make_shared<OptionValueBoolean>(false); break; case 1u << eTypeChar: value_sp = std::make_shared<OptionValueChar>('\0'); break; case 1u << eTypeFileSpec: value_sp = std::make_shared<OptionValueFileSpec>(); break; case 1u << eTypeFormat: value_sp = std::make_shared<OptionValueFormat>(eFormatInvalid); break; case 1u << eTypeFormatEntity: value_sp = std::make_shared<OptionValueFormatEntity>(nullptr); break; case 1u << eTypeLanguage: value_sp = std::make_shared<OptionValueLanguage>(eLanguageTypeUnknown); break; case 1u << eTypeSInt64: value_sp = std::make_shared<OptionValueSInt64>(); break; case 1u << eTypeString: value_sp = std::make_shared<OptionValueString>(); break; case 1u << eTypeUInt64: value_sp = std::make_shared<OptionValueUInt64>(); break; case 1u << eTypeUUID: value_sp = std::make_shared<OptionValueUUID>(); break; } if (value_sp) error = value_sp->SetValueFromString( llvm::StringRef::withNullAsEmpty(value_cstr), eVarSetOperationAssign); else error.SetErrorString("unsupported type mask"); return value_sp; } bool OptionValue::DumpQualifiedName(Stream &strm) const { bool dumped_something = false; lldb::OptionValueSP m_parent_sp(m_parent_wp.lock()); if (m_parent_sp) { if (m_parent_sp->DumpQualifiedName(strm)) dumped_something = true; } ConstString name(GetName()); if (name) { if (dumped_something) strm.PutChar('.'); else dumped_something = true; strm << name; } return dumped_something; } void OptionValue::AutoComplete(CommandInterpreter &interpreter, CompletionRequest &request) {} Status OptionValue::SetValueFromString(llvm::StringRef value, VarSetOperationType op) { Status error; switch (op) { case eVarSetOperationReplace: error.SetErrorStringWithFormat( "%s objects do not support the 'replace' operation", GetTypeAsCString()); break; case eVarSetOperationInsertBefore: error.SetErrorStringWithFormat( "%s objects do not support the 'insert-before' operation", GetTypeAsCString()); break; case eVarSetOperationInsertAfter: error.SetErrorStringWithFormat( "%s objects do not support the 'insert-after' operation", GetTypeAsCString()); break; case eVarSetOperationRemove: error.SetErrorStringWithFormat( "%s objects do not support the 'remove' operation", GetTypeAsCString()); break; case eVarSetOperationAppend: error.SetErrorStringWithFormat( "%s objects do not support the 'append' operation", GetTypeAsCString()); break; case eVarSetOperationClear: error.SetErrorStringWithFormat( "%s objects do not support the 'clear' operation", GetTypeAsCString()); break; case eVarSetOperationAssign: error.SetErrorStringWithFormat( "%s objects do not support the 'assign' operation", GetTypeAsCString()); break; case eVarSetOperationInvalid: error.SetErrorStringWithFormat("invalid operation performed on a %s object", GetTypeAsCString()); break; } return error; }
Upload File
Create Folder