blob: ad73ba8e3d50f1d0b124c17cfb4d5a8dc560f81f [file] [log] [blame]
Chris Lattner30fdc8d2010-06-08 16:52:24 +00001//===-- 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"
Eli Friedman88966972010-06-09 08:50:27 +000015#include <stdio.h>
Chris Lattner30fdc8d2010-06-08 16:52:24 +000016
17using namespace lldb;
18using namespace lldb_private;
19
20const char *
21lldb_private::StateAsCString (StateType state)
22{
23 switch (state)
24 {
Greg Clayton19388cf2010-10-18 01:45:30 +000025 case eStateInvalid: return "invalid";
26 case eStateUnloaded: return "unloaded";
Greg Claytonb766a732011-02-04 01:58:07 +000027 case eStateConnected: return "connected";
Greg Clayton19388cf2010-10-18 01:45:30 +000028 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";
Chris Lattner30fdc8d2010-06-08 16:52:24 +000037 }
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
Greg Clayton84c39662011-04-27 22:04:39 +000043const 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 eFormatCharPrintable: return "printable character";
55 case eFormatComplexFloat: return "complet float";
56 case eFormatCString: return "c-string";
57 case eFormatDecimal: return "signed decimal";
58 case eFormatEnum: return "enumeration";
59 case eFormatHex: return "hex";
60 case eFormatFloat: return "float";
61 case eFormatOctal: return "octal";
62 case eFormatOSType: return "OSType";
63 case eFormatUnicode16: return "Unicode16";
64 case eFormatUnicode32: return "Unicode32";
65 case eFormatUnsigned: return "unsigned decimal";
66 case eFormatPointer: return "pointer";
67 case eFormatVectorOfChar: return "vector of characters";
68 case eFormatVectorOfSInt8: return "vector of int8_t";
69 case eFormatVectorOfUInt8: return "vector of uint8_t";
70 case eFormatVectorOfSInt16: return "vector of int16_t";
71 case eFormatVectorOfUInt16: return "vector of uint16_t";
72 case eFormatVectorOfSInt32: return "vector of int32_t";
73 case eFormatVectorOfUInt32: return "vector of uint32_t";
74 case eFormatVectorOfSInt64: return "vector of int64_t";
75 case eFormatVectorOfUInt64: return "vector of uint64_t";
76 case eFormatVectorOfFloat32:return "vector of float32";
77 case eFormatVectorOfFloat64:return "vector of float64";
78 case eFormatVectorOfUInt128:return "vector of uint128_t";
79 case eFormatComplexInteger: return "complex integer";
80 default: break;
81 }
82 static char unknown_format_string[64];
83 snprintf(unknown_format_string, sizeof (unknown_format_string), "Format = %u", format);
84 return unknown_format_string;
85}
86
Greg Claytond495c532011-05-17 03:37:42 +000087
88const char *
89lldb_private::GetPermissionsAsCString (uint32_t permissions)
90{
91 switch (permissions)
92 {
93 case 0: return "---";
94 case ePermissionsWritable: return "-w-";
95 case ePermissionsReadable: return "r--";
96 case ePermissionsExecutable: return "--x";
97 case ePermissionsReadable |
98 ePermissionsWritable: return "rw-";
99 case ePermissionsReadable |
100 ePermissionsExecutable: return "r-x";
101 case ePermissionsWritable |
102 ePermissionsExecutable: return "-wx";
103 case ePermissionsReadable |
104 ePermissionsWritable |
105 ePermissionsExecutable: return "rwx";
106 default:
107 break;
108 }
109 return "???";
110}
111
Chris Lattner30fdc8d2010-06-08 16:52:24 +0000112bool
113lldb_private::StateIsRunningState (StateType state)
114{
115 switch (state)
116 {
117 case eStateAttaching:
118 case eStateLaunching:
119 case eStateRunning:
120 case eStateStepping:
121 return true;
122
Greg Claytonb766a732011-02-04 01:58:07 +0000123 case eStateConnected:
Chris Lattner30fdc8d2010-06-08 16:52:24 +0000124 case eStateDetached:
125 case eStateInvalid:
126 case eStateUnloaded:
127 case eStateStopped:
128 case eStateCrashed:
129 case eStateExited:
130 case eStateSuspended:
131 default:
132 break;
133 }
134 return false;
135}
136
137bool
138lldb_private::StateIsStoppedState (StateType state)
139{
140 switch (state)
141 {
142 case eStateInvalid:
Greg Claytonb766a732011-02-04 01:58:07 +0000143 case eStateConnected:
Chris Lattner30fdc8d2010-06-08 16:52:24 +0000144 case eStateAttaching:
145 case eStateLaunching:
146 case eStateRunning:
147 case eStateStepping:
148 case eStateDetached:
149 default:
150 break;
151
152 case eStateUnloaded:
153 case eStateStopped:
154 case eStateCrashed:
155 case eStateExited:
156 case eStateSuspended:
157 return true;
158 }
159 return false;
160}