LLDB
mainline
llvm-project
lldb
source
Interpreter
OptionValueChar.cpp
Go to the documentation of this file.
1
//===-- OptionValueChar.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-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#include "
lldb/Interpreter/OptionValueChar.h
"
10
11
#include "
lldb/Interpreter/OptionArgParser.h
"
12
#include "
lldb/Interpreter/OptionValue.h
"
13
#include "
lldb/Utility/Stream.h
"
14
#include "
lldb/Utility/StringList.h
"
15
#include "llvm/ADT/STLExtras.h"
16
17
using namespace
lldb
;
18
using namespace
lldb_private
;
19
20
static
void
DumpChar
(
Stream
&strm,
char
value) {
21
if
(value !=
'\0'
)
22
strm.
PutChar
(value);
23
else
24
strm.
PutCString
(
"(null)"
);
25
}
26
27
void
OptionValueChar::DumpValue
(
const
ExecutionContext
*exe_ctx,
Stream
&strm,
28
uint32_t dump_mask) {
29
if
(dump_mask &
eDumpOptionType
)
30
strm.
Printf
(
"(%s)"
,
GetTypeAsCString
());
31
32
if
(dump_mask &
eDumpOptionValue
) {
33
if
(dump_mask &
eDumpOptionType
)
34
strm.
PutCString
(
" = "
);
35
DumpChar
(strm,
m_current_value
);
36
if
(dump_mask &
eDumpOptionDefaultValue
&&
37
m_current_value
!=
m_default_value
) {
38
DefaultValueFormat
label(strm);
39
DumpChar
(strm,
m_default_value
);
40
}
41
}
42
}
43
44
Status
OptionValueChar::SetValueFromString
(llvm::StringRef value,
45
VarSetOperationType
op) {
46
Status
error
;
47
switch
(op) {
48
case
eVarSetOperationClear
:
49
Clear
();
50
break
;
51
52
case
eVarSetOperationReplace
:
53
case
eVarSetOperationAssign
: {
54
bool
success =
false
;
55
char
char_value =
OptionArgParser::ToChar
(value,
'\0'
, &success);
56
if
(success) {
57
m_current_value
= char_value;
58
m_value_was_set
=
true
;
59
}
else
60
return
Status::FromErrorStringWithFormatv
(
61
"'{0}' cannot be longer than 1 character"
, value);
62
}
break
;
63
64
default
:
65
error
=
OptionValue::SetValueFromString
(value, op);
66
break
;
67
}
68
return
error
;
69
}
error
static llvm::raw_ostream & error(Stream &strm)
Definition
CommandReturnObject.cpp:18
OptionArgParser.h
DumpChar
static void DumpChar(Stream &strm, char value)
Definition
OptionValueChar.cpp:20
OptionValueChar.h
OptionValue.h
Stream.h
StringList.h
lldb_private::ExecutionContext
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
Definition
ExecutionContext.h:293
lldb_private::OptionValueChar::m_default_value
char m_default_value
Definition
OptionValueChar.h:63
lldb_private::OptionValueChar::m_current_value
char m_current_value
Definition
OptionValueChar.h:62
lldb_private::OptionValueChar::SetValueFromString
Status SetValueFromString(llvm::StringRef value, VarSetOperationType op=eVarSetOperationAssign) override
Definition
OptionValueChar.cpp:44
lldb_private::OptionValueChar::DumpValue
void DumpValue(const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask) override
Definition
OptionValueChar.cpp:27
lldb_private::OptionValueChar::Clear
void Clear() override
Definition
OptionValueChar.h:41
lldb_private::OptionValue::DefaultValueFormat
Definition
OptionValue.h:343
lldb_private::OptionValue::SetValueFromString
virtual Status SetValueFromString(llvm::StringRef value, VarSetOperationType op=eVarSetOperationAssign)
Definition
OptionValue.cpp:609
lldb_private::OptionValue::m_value_was_set
bool m_value_was_set
Definition
OptionValue.h:359
lldb_private::OptionValue::GetTypeAsCString
virtual const char * GetTypeAsCString() const
Definition
OptionValue.h:89
lldb_private::OptionValue::eDumpOptionType
@ eDumpOptionType
Definition
OptionValue.h:60
lldb_private::OptionValue::eDumpOptionDefaultValue
@ eDumpOptionDefaultValue
Definition
OptionValue.h:65
lldb_private::OptionValue::eDumpOptionValue
@ eDumpOptionValue
Definition
OptionValue.h:61
lldb_private::Status
An error handling class.
Definition
Status.h:118
lldb_private::Status::FromErrorStringWithFormatv
static Status static Status FromErrorStringWithFormatv(const char *format, Args &&...args)
Definition
Status.h:151
lldb_private::Stream
A stream class that can stream formatted output to a file.
Definition
Stream.h:28
lldb_private::Stream::Printf
size_t Printf(const char *format,...) __attribute__((format(printf
Output printf formatted output to the stream.
Definition
Stream.cpp:134
lldb_private::Stream::PutCString
size_t PutCString(llvm::StringRef cstr)
Output a C string to the stream.
Definition
Stream.cpp:65
lldb_private::Stream::PutChar
size_t PutChar(char ch)
Definition
Stream.cpp:131
lldb_private
A class that represents a running process on the host machine.
Definition
SBAddressRange.h:14
lldb_private::VarSetOperationType
VarSetOperationType
Settable state variable types.
Definition
lldb-private-enumerations.h:86
lldb_private::eVarSetOperationAssign
@ eVarSetOperationAssign
Definition
lldb-private-enumerations.h:93
lldb_private::eVarSetOperationReplace
@ eVarSetOperationReplace
Definition
lldb-private-enumerations.h:87
lldb_private::eVarSetOperationClear
@ eVarSetOperationClear
Definition
lldb-private-enumerations.h:92
lldb
Definition
SBAddress.h:15
lldb_private::OptionArgParser::ToChar
static char ToChar(llvm::StringRef s, char fail_value, bool *success_ptr)
Definition
OptionArgParser.cpp:52
Generated on
for LLDB by
1.14.0