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