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