summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/State.cpp
blob: 2292fa750b2d59cae9a930c836a2d21da2df8c25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
//===-- State.cpp -----------------------------------------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

// C Includes
// C++ Includes
// Other libraries and framework includes
// Project includes
#include "lldb/Core/State.h"
#include <stdio.h>

using namespace lldb;
using namespace lldb_private;

const char *
lldb_private::StateAsCString (StateType state)
{
    switch (state)
    {
    case eStateInvalid:     return "invalid";
    case eStateUnloaded:    return "unloaded";
    case eStateConnected:   return "connected";
    case eStateAttaching:   return "attaching";
    case eStateLaunching:   return "launching";
    case eStateStopped:     return "stopped";
    case eStateRunning:     return "running";
    case eStateStepping:    return "stepping";
    case eStateCrashed:     return "crashed";
    case eStateDetached:    return "detached";
    case eStateExited:      return "exited";
    case eStateSuspended:   return "suspended";
    }
    static char unknown_state_string[64];
    snprintf(unknown_state_string, sizeof (unknown_state_string), "StateType = %i", state);
    return unknown_state_string;
}

const char *
lldb_private::GetFormatAsCString (lldb::Format format)
{
    switch (format)
    {
        case eFormatDefault:        return "default";
        case eFormatBoolean:        return "boolean";
        case eFormatBinary:         return "binary";
        case eFormatBytes:          return "bytes";
        case eFormatBytesWithASCII: return "bytes with ASCII";
        case eFormatChar:           return "character";
        case eFormatCharArray:      return "character array";
        case eFormatCharPrintable:  return "printable character";
        case eFormatComplexFloat:   return "complet float";
        case eFormatCString:        return "c-string";
        case eFormatDecimal:        return "signed decimal";
        case eFormatEnum:           return "enumeration";
        case eFormatHex:            return "hex";
        case eFormatFloat:          return "float";
        case eFormatOctal:          return "octal";
        case eFormatOSType:         return "OSType";
        case eFormatUnicode16:      return "Unicode16";
        case eFormatUnicode32:      return "Unicode32";
        case eFormatUnsigned:       return "unsigned decimal";
        case eFormatPointer:        return "pointer";
        case eFormatVectorOfChar:   return "vector of characters";
        case eFormatVectorOfSInt8:  return "vector of int8_t";
        case eFormatVectorOfUInt8:  return "vector of uint8_t";
        case eFormatVectorOfSInt16: return "vector of int16_t";
        case eFormatVectorOfUInt16: return "vector of uint16_t";
        case eFormatVectorOfSInt32: return "vector of int32_t";
        case eFormatVectorOfUInt32: return "vector of uint32_t";
        case eFormatVectorOfSInt64: return "vector of int64_t";
        case eFormatVectorOfUInt64: return "vector of uint64_t";
        case eFormatVectorOfFloat32:return "vector of float32";
        case eFormatVectorOfFloat64:return "vector of float64";
        case eFormatVectorOfUInt128:return "vector of uint128_t";
        case eFormatComplexInteger: return "complex integer";
        default: break;
    }
    static char unknown_format_string[64];
    snprintf(unknown_format_string, sizeof (unknown_format_string), "Format = %u", format);
    return unknown_format_string;
}


const char *
lldb_private::GetPermissionsAsCString (uint32_t permissions)
{
    switch (permissions)
    {
        case 0:                      return "---";
        case ePermissionsWritable:   return "-w-";
        case ePermissionsReadable:   return "r--";
        case ePermissionsExecutable: return "--x";
        case ePermissionsReadable | 
             ePermissionsWritable:   return "rw-";
        case ePermissionsReadable | 
             ePermissionsExecutable: return "r-x";
        case ePermissionsWritable | 
             ePermissionsExecutable: return "-wx";        
        case ePermissionsReadable | 
             ePermissionsWritable | 
             ePermissionsExecutable: return "rwx";
        default: 
            break;
    }
    return "???";
}

bool
lldb_private::StateIsRunningState (StateType state)
{
    switch (state)
    {
    case eStateAttaching:
    case eStateLaunching:
    case eStateRunning:
    case eStateStepping:
        return true;

    case eStateConnected:
    case eStateDetached:
    case eStateInvalid:
    case eStateUnloaded:
    case eStateStopped:
    case eStateCrashed:
    case eStateExited:
    case eStateSuspended:
    default:
        break;
    }
    return false;
}

bool
lldb_private::StateIsStoppedState (StateType state)
{
    switch (state)
    {
    case eStateInvalid:
    case eStateConnected:
    case eStateAttaching:
    case eStateLaunching:
    case eStateRunning:
    case eStateStepping:
    case eStateDetached:
    default:
        break;

    case eStateUnloaded:
    case eStateStopped:
    case eStateCrashed:
    case eStateExited:
    case eStateSuspended:
        return true;
    }
    return false;
}
OpenPOWER on IntegriCloud