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