Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/lldb/source/Utility/State.cpp
39587 views
1
//===-- State.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/Utility/State.h"
10
11
using namespace lldb;
12
using namespace lldb_private;
13
14
const char *lldb_private::StateAsCString(StateType state) {
15
switch (state) {
16
case eStateInvalid:
17
return "invalid";
18
case eStateUnloaded:
19
return "unloaded";
20
case eStateConnected:
21
return "connected";
22
case eStateAttaching:
23
return "attaching";
24
case eStateLaunching:
25
return "launching";
26
case eStateStopped:
27
return "stopped";
28
case eStateRunning:
29
return "running";
30
case eStateStepping:
31
return "stepping";
32
case eStateCrashed:
33
return "crashed";
34
case eStateDetached:
35
return "detached";
36
case eStateExited:
37
return "exited";
38
case eStateSuspended:
39
return "suspended";
40
}
41
return "unknown";
42
}
43
44
const char *lldb_private::GetPermissionsAsCString(uint32_t permissions) {
45
switch (permissions) {
46
case 0:
47
return "---";
48
case ePermissionsWritable:
49
return "-w-";
50
case ePermissionsReadable:
51
return "r--";
52
case ePermissionsExecutable:
53
return "--x";
54
case ePermissionsReadable | ePermissionsWritable:
55
return "rw-";
56
case ePermissionsReadable | ePermissionsExecutable:
57
return "r-x";
58
case ePermissionsWritable | ePermissionsExecutable:
59
return "-wx";
60
case ePermissionsReadable | ePermissionsWritable | ePermissionsExecutable:
61
return "rwx";
62
default:
63
break;
64
}
65
return "???";
66
}
67
68
bool lldb_private::StateIsRunningState(StateType state) {
69
switch (state) {
70
case eStateAttaching:
71
case eStateLaunching:
72
case eStateRunning:
73
case eStateStepping:
74
return true;
75
76
case eStateConnected:
77
case eStateDetached:
78
case eStateInvalid:
79
case eStateUnloaded:
80
case eStateStopped:
81
case eStateCrashed:
82
case eStateExited:
83
case eStateSuspended:
84
break;
85
}
86
return false;
87
}
88
89
bool lldb_private::StateIsStoppedState(StateType state, bool must_exist) {
90
switch (state) {
91
case eStateInvalid:
92
case eStateConnected:
93
case eStateAttaching:
94
case eStateLaunching:
95
case eStateRunning:
96
case eStateStepping:
97
case eStateDetached:
98
break;
99
100
case eStateUnloaded:
101
case eStateExited:
102
return !must_exist;
103
104
case eStateStopped:
105
case eStateCrashed:
106
case eStateSuspended:
107
return true;
108
}
109
return false;
110
}
111
112