LLDB
mainline
llvm-project
lldb
source
Interpreter
OptionGroupArchitecture.cpp
Go to the documentation of this file.
1
//===-- OptionGroupArchitecture.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/OptionGroupArchitecture.h
"
10
#include "
lldb/Host/OptionParser.h
"
11
#include "
lldb/Target/Platform.h
"
12
13
using namespace
lldb
;
14
using namespace
lldb_private
;
15
16
static
constexpr
OptionDefinition
g_option_table
[] = {
17
{
LLDB_OPT_SET_1
,
false
,
"arch"
,
'a'
,
OptionParser::eRequiredArgument
,
18
nullptr
, {}, 0,
eArgTypeArchitecture
,
19
"Specify the architecture for the target."
},
20
};
21
22
llvm::ArrayRef<OptionDefinition>
OptionGroupArchitecture::GetDefinitions
() {
23
return
llvm::ArrayRef(
g_option_table
);
24
}
25
26
bool
OptionGroupArchitecture::GetArchitecture
(
Platform
*platform,
27
ArchSpec
&arch) {
28
arch =
Platform::GetAugmentedArchSpec
(platform,
m_arch_str
);
29
return
arch.
IsValid
();
30
}
31
32
Status
33
OptionGroupArchitecture::SetOptionValue
(uint32_t option_idx,
34
llvm::StringRef option_arg,
35
ExecutionContext
*execution_context) {
36
Status
error
;
37
const
int
short_option =
g_option_table
[option_idx].
short_option
;
38
39
switch
(short_option) {
40
case
'a'
:
41
m_arch_str
.assign(std::string(option_arg));
42
break
;
43
44
default
:
45
llvm_unreachable(
"Unimplemented option"
);
46
}
47
48
return
error
;
49
}
50
51
void
OptionGroupArchitecture::OptionParsingStarting
(
52
ExecutionContext
*execution_context) {
53
m_arch_str
.clear();
54
}
error
static llvm::raw_ostream & error(Stream &strm)
Definition:
CommandReturnObject.cpp:17
g_option_table
static constexpr OptionDefinition g_option_table[]
Definition:
OptionGroupArchitecture.cpp:16
OptionGroupArchitecture.h
OptionParser.h
Platform.h
lldb_private::ArchSpec
An architecture specification class.
Definition:
ArchSpec.h:31
lldb_private::ArchSpec::IsValid
bool IsValid() const
Tests if this ArchSpec is valid.
Definition:
ArchSpec.h:348
lldb_private::ExecutionContext
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
Definition:
ExecutionContext.h:292
lldb_private::OptionGroupArchitecture::SetOptionValue
Status SetOptionValue(uint32_t option_idx, llvm::StringRef option_value, ExecutionContext *execution_context) override
Definition:
OptionGroupArchitecture.cpp:33
lldb_private::OptionGroupArchitecture::OptionParsingStarting
void OptionParsingStarting(ExecutionContext *execution_context) override
Definition:
OptionGroupArchitecture.cpp:51
lldb_private::OptionGroupArchitecture::GetArchitecture
bool GetArchitecture(Platform *platform, ArchSpec &arch)
Definition:
OptionGroupArchitecture.cpp:26
lldb_private::OptionGroupArchitecture::GetDefinitions
llvm::ArrayRef< OptionDefinition > GetDefinitions() override
Definition:
OptionGroupArchitecture.cpp:22
lldb_private::OptionGroupArchitecture::m_arch_str
std::string m_arch_str
Definition:
OptionGroupArchitecture.h:39
lldb_private::OptionParser::eRequiredArgument
@ eRequiredArgument
Definition:
OptionParser.h:35
lldb_private::Platform
A plug-in interface definition class for debug platform that includes many platform abilities such as...
Definition:
Platform.h:76
lldb_private::Platform::GetAugmentedArchSpec
static ArchSpec GetAugmentedArchSpec(Platform *platform, llvm::StringRef triple)
Augments the triple either with information from platform or the host system (if platform is null).
Definition:
Platform.cpp:227
lldb_private::Status
An error handling class.
Definition:
Status.h:44
LLDB_OPT_SET_1
#define LLDB_OPT_SET_1
Definition:
lldb-defines.h:111
lldb_private
A class that represents a running process on the host machine.
Definition:
SBAddressRange.h:14
lldb
Definition:
SBAddress.h:15
lldb::eArgTypeArchitecture
@ eArgTypeArchitecture
Definition:
lldb-enumerations.h:563
lldb_private::OptionDefinition
Definition:
OptionDefinition.h:20
lldb_private::OptionDefinition::short_option
int short_option
Single character for this option.
Definition:
OptionDefinition.h:32
Generated on Wed Nov 20 2024 18:15:02 for LLDB by
1.9.6