State.cpp revision 307fa07606d519d427c812802aff5f9727e7047c
1//===-- State.cpp -----------------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// C Includes
11// C++ Includes
12// Other libraries and framework includes
13// Project includes
14#include "lldb/Core/State.h"
15#include <stdio.h>
16
17using namespace lldb;
18using namespace lldb_private;
19
20const char *
21lldb_private::StateAsCString (StateType state)
22{
23    switch (state)
24    {
25    case eStateInvalid:     return "invalid";
26    case eStateUnloaded:    return "unloaded";
27    case eStateConnected:   return "connected";
28    case eStateAttaching:   return "attaching";
29    case eStateLaunching:   return "launching";
30    case eStateStopped:     return "stopped";
31    case eStateRunning:     return "running";
32    case eStateStepping:    return "stepping";
33    case eStateCrashed:     return "crashed";
34    case eStateDetached:    return "detached";
35    case eStateExited:      return "exited";
36    case eStateSuspended:   return "suspended";
37    }
38    static char unknown_state_string[64];
39    snprintf(unknown_state_string, sizeof (unknown_state_string), "StateType = %i", state);
40    return unknown_state_string;
41}
42
43const char *
44lldb_private::GetFormatAsCString (lldb::Format format)
45{
46    switch (format)
47    {
48        case eFormatDefault:        return "default";
49        case eFormatBoolean:        return "boolean";
50        case eFormatBinary:         return "binary";
51        case eFormatBytes:          return "bytes";
52        case eFormatBytesWithASCII: return "bytes with ASCII";
53        case eFormatChar:           return "character";
54        case eFormatCharArray:      return "character array";
55        case eFormatCharPrintable:  return "printable character";
56        case eFormatComplexFloat:   return "complet float";
57        case eFormatCString:        return "c-string";
58        case eFormatDecimal:        return "signed decimal";
59        case eFormatEnum:           return "enumeration";
60        case eFormatHex:            return "hex";
61        case eFormatFloat:          return "float";
62        case eFormatOctal:          return "octal";
63        case eFormatOSType:         return "OSType";
64        case eFormatUnicode16:      return "Unicode16";
65        case eFormatUnicode32:      return "Unicode32";
66        case eFormatUnsigned:       return "unsigned decimal";
67        case eFormatPointer:        return "pointer";
68        case eFormatVectorOfChar:   return "vector of characters";
69        case eFormatVectorOfSInt8:  return "vector of int8_t";
70        case eFormatVectorOfUInt8:  return "vector of uint8_t";
71        case eFormatVectorOfSInt16: return "vector of int16_t";
72        case eFormatVectorOfUInt16: return "vector of uint16_t";
73        case eFormatVectorOfSInt32: return "vector of int32_t";
74        case eFormatVectorOfUInt32: return "vector of uint32_t";
75        case eFormatVectorOfSInt64: return "vector of int64_t";
76        case eFormatVectorOfUInt64: return "vector of uint64_t";
77        case eFormatVectorOfFloat32:return "vector of float32";
78        case eFormatVectorOfFloat64:return "vector of float64";
79        case eFormatVectorOfUInt128:return "vector of uint128_t";
80        case eFormatComplexInteger: return "complex integer";
81        default: break;
82    }
83    static char unknown_format_string[64];
84    snprintf(unknown_format_string, sizeof (unknown_format_string), "Format = %u", format);
85    return unknown_format_string;
86}
87
88
89const char *
90lldb_private::GetPermissionsAsCString (uint32_t permissions)
91{
92    switch (permissions)
93    {
94        case 0:                      return "---";
95        case ePermissionsWritable:   return "-w-";
96        case ePermissionsReadable:   return "r--";
97        case ePermissionsExecutable: return "--x";
98        case ePermissionsReadable |
99             ePermissionsWritable:   return "rw-";
100        case ePermissionsReadable |
101             ePermissionsExecutable: return "r-x";
102        case ePermissionsWritable |
103             ePermissionsExecutable: return "-wx";
104        case ePermissionsReadable |
105             ePermissionsWritable |
106             ePermissionsExecutable: return "rwx";
107        default:
108            break;
109    }
110    return "???";
111}
112
113bool
114lldb_private::StateIsRunningState (StateType state)
115{
116    switch (state)
117    {
118    case eStateAttaching:
119    case eStateLaunching:
120    case eStateRunning:
121    case eStateStepping:
122        return true;
123
124    case eStateConnected:
125    case eStateDetached:
126    case eStateInvalid:
127    case eStateUnloaded:
128    case eStateStopped:
129    case eStateCrashed:
130    case eStateExited:
131    case eStateSuspended:
132    default:
133        break;
134    }
135    return false;
136}
137
138bool
139lldb_private::StateIsStoppedState (StateType state)
140{
141    switch (state)
142    {
143    case eStateInvalid:
144    case eStateConnected:
145    case eStateAttaching:
146    case eStateLaunching:
147    case eStateRunning:
148    case eStateStepping:
149    case eStateDetached:
150    default:
151        break;
152
153    case eStateUnloaded:
154    case eStateStopped:
155    case eStateCrashed:
156    case eStateExited:
157    case eStateSuspended:
158        return true;
159    }
160    return false;
161}
162