State.cpp revision 343181
1189251Ssam//===-- State.cpp -----------------------------------------------*- C++ -*-===// 2189251Ssam// 3189251Ssam// The LLVM Compiler Infrastructure 4189251Ssam// 5189251Ssam// This file is distributed under the University of Illinois Open Source 6189251Ssam// License. See LICENSE.TXT for details. 7189251Ssam// 8189251Ssam//===----------------------------------------------------------------------===// 9189251Ssam 10189251Ssam#include "lldb/Utility/State.h" 11189251Ssam 12189251Ssamusing namespace lldb; 13189251Ssamusing namespace lldb_private; 14189251Ssam 15189251Ssamconst char *lldb_private::StateAsCString(StateType state) { 16189251Ssam switch (state) { 17189251Ssam case eStateInvalid: 18189251Ssam return "invalid"; 19189251Ssam case eStateUnloaded: 20189251Ssam return "unloaded"; 21189251Ssam case eStateConnected: 22189251Ssam return "connected"; 23189251Ssam case eStateAttaching: 24189251Ssam return "attaching"; 25189251Ssam case eStateLaunching: 26189251Ssam return "launching"; 27189251Ssam case eStateStopped: 28189251Ssam return "stopped"; 29189251Ssam case eStateRunning: 30189251Ssam return "running"; 31189251Ssam case eStateStepping: 32189251Ssam return "stepping"; 33189251Ssam case eStateCrashed: 34189251Ssam return "crashed"; 35189251Ssam case eStateDetached: 36189251Ssam return "detached"; 37189251Ssam case eStateExited: 38189251Ssam return "exited"; 39189251Ssam case eStateSuspended: 40189251Ssam return "suspended"; 41189251Ssam } 42189251Ssam return "unknown"; 43189251Ssam} 44189251Ssam 45189251Ssamconst char *lldb_private::GetPermissionsAsCString(uint32_t permissions) { 46189251Ssam switch (permissions) { 47189251Ssam case 0: 48189251Ssam return "---"; 49189251Ssam case ePermissionsWritable: 50189251Ssam return "-w-"; 51189251Ssam case ePermissionsReadable: 52189251Ssam return "r--"; 53189251Ssam case ePermissionsExecutable: 54189251Ssam return "--x"; 55189251Ssam case ePermissionsReadable | ePermissionsWritable: 56189251Ssam return "rw-"; 57189251Ssam case ePermissionsReadable | ePermissionsExecutable: 58189251Ssam return "r-x"; 59189251Ssam case ePermissionsWritable | ePermissionsExecutable: 60189251Ssam return "-wx"; 61189251Ssam case ePermissionsReadable | ePermissionsWritable | ePermissionsExecutable: 62189251Ssam return "rwx"; 63189251Ssam default: 64189251Ssam break; 65189251Ssam } 66189251Ssam return "???"; 67189251Ssam} 68189251Ssam 69189251Ssambool lldb_private::StateIsRunningState(StateType state) { 70189251Ssam switch (state) { 71189251Ssam case eStateAttaching: 72189251Ssam case eStateLaunching: 73189251Ssam case eStateRunning: 74189251Ssam case eStateStepping: 75189251Ssam return true; 76189251Ssam 77189251Ssam case eStateConnected: 78189251Ssam case eStateDetached: 79189251Ssam case eStateInvalid: 80189251Ssam case eStateUnloaded: 81189251Ssam case eStateStopped: 82189251Ssam case eStateCrashed: 83189251Ssam case eStateExited: 84189251Ssam case eStateSuspended: 85189251Ssam break; 86189251Ssam } 87189251Ssam return false; 88189251Ssam} 89189251Ssam 90189251Ssambool lldb_private::StateIsStoppedState(StateType state, bool must_exist) { 91189251Ssam switch (state) { 92189251Ssam case eStateInvalid: 93189251Ssam case eStateConnected: 94189251Ssam case eStateAttaching: 95189251Ssam case eStateLaunching: 96189251Ssam case eStateRunning: 97189251Ssam case eStateStepping: 98189251Ssam case eStateDetached: 99189251Ssam break; 100189251Ssam 101189251Ssam case eStateUnloaded: 102189251Ssam case eStateExited: 103189251Ssam return !must_exist; 104189251Ssam 105189251Ssam case eStateStopped: 106189251Ssam case eStateCrashed: 107189251Ssam case eStateSuspended: 108189251Ssam return true; 109189251Ssam } 110189251Ssam return false; 111189251Ssam} 112189251Ssam