1 //===-- OptionValueUInt64.cpp ------------------------------------*- C++
4 // The LLVM Compiler Infrastructure
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
9 //===----------------------------------------------------------------------===//
11 #include "lldb/Interpreter/OptionValueUInt64.h"
13 #include "lldb/Host/StringConvert.h"
14 #include "lldb/Utility/Stream.h"
17 using namespace lldb_private;
19 lldb::OptionValueSP OptionValueUInt64::Create(llvm::StringRef value_str,
21 lldb::OptionValueSP value_sp(new OptionValueUInt64());
22 error = value_sp->SetValueFromString(value_str);
28 void OptionValueUInt64::DumpValue(const ExecutionContext *exe_ctx, Stream &strm,
30 if (dump_mask & eDumpOptionType)
31 strm.Printf("(%s)", GetTypeAsCString());
32 if (dump_mask & eDumpOptionValue) {
33 if (dump_mask & eDumpOptionType)
34 strm.PutCString(" = ");
35 strm.Printf("%" PRIu64, m_current_value);
39 Status OptionValueUInt64::SetValueFromString(llvm::StringRef value_ref,
40 VarSetOperationType op) {
43 case eVarSetOperationClear:
48 case eVarSetOperationReplace:
49 case eVarSetOperationAssign: {
51 std::string value_str = value_ref.trim().str();
52 uint64_t value = StringConvert::ToUInt64(value_str.c_str(), 0, 0, &success);
54 m_value_was_set = true;
55 m_current_value = value;
58 error.SetErrorStringWithFormat("invalid uint64_t string value: '%s'",
63 case eVarSetOperationInsertBefore:
64 case eVarSetOperationInsertAfter:
65 case eVarSetOperationRemove:
66 case eVarSetOperationAppend:
67 case eVarSetOperationInvalid:
68 error = OptionValue::SetValueFromString(value_ref, op);
74 lldb::OptionValueSP OptionValueUInt64::DeepCopy() const {
75 return OptionValueSP(new OptionValueUInt64(*this));